75 lines
1.6 KiB
Bash
Executable File
75 lines
1.6 KiB
Bash
Executable File
#! /bin/sh
|
|
# src/test/mb/mbregress.sh
|
|
|
|
if echo '\c' | grep -s c >/dev/null 2>&1
|
|
then
|
|
ECHO_N="echo -n"
|
|
ECHO_C=""
|
|
else
|
|
ECHO_N="echo"
|
|
ECHO_C='\c'
|
|
fi
|
|
|
|
if [ ! -d results ];then
|
|
mkdir results
|
|
fi
|
|
|
|
dropdb --if-exists utf8
|
|
createdb -T template0 -l C -E UTF8 utf8 || exit 1
|
|
|
|
PSQL="psql -X -n -e -q"
|
|
|
|
# in the test list, client-only encodings must follow the server encoding
|
|
# they're to be tested with; see hard-coded cases below
|
|
tests="euc_jp sjis euc_kr euc_cn euc_tw big5 utf8 gb18030 mule_internal"
|
|
|
|
EXITCODE=0
|
|
|
|
unset PGCLIENTENCODING
|
|
for i in $tests
|
|
do
|
|
$ECHO_N "${i} .. " $ECHO_C
|
|
|
|
if [ $i = sjis ];then
|
|
PGCLIENTENCODING=SJIS
|
|
export PGCLIENTENCODING
|
|
$PSQL euc_jp < sql/sjis.sql > results/sjis.out 2>&1
|
|
unset PGCLIENTENCODING
|
|
elif [ $i = big5 ];then
|
|
PGCLIENTENCODING=BIG5
|
|
export PGCLIENTENCODING
|
|
$PSQL euc_tw < sql/big5.sql > results/big5.out 2>&1
|
|
unset PGCLIENTENCODING
|
|
elif [ $i = gb18030 ];then
|
|
PGCLIENTENCODING=GB18030
|
|
export PGCLIENTENCODING
|
|
$PSQL utf8 < sql/gb18030.sql > results/gb18030.out 2>&1
|
|
unset PGCLIENTENCODING
|
|
else
|
|
dropdb $i >/dev/null 2>&1
|
|
createdb -T template0 -l C -E `echo $i | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` $i >/dev/null
|
|
$PSQL $i < sql/${i}.sql > results/${i}.out 2>&1
|
|
fi
|
|
|
|
if [ -f expected/${i}-${SYSTEM}.out ]
|
|
then
|
|
EXPECTED="expected/${i}-${SYSTEM}.out"
|
|
else
|
|
EXPECTED="expected/${i}.out"
|
|
fi
|
|
|
|
if [ `diff ${EXPECTED} results/${i}.out | wc -l` -ne 0 ]
|
|
then
|
|
( diff -C3 ${EXPECTED} results/${i}.out; \
|
|
echo ""; \
|
|
echo "----------------------"; \
|
|
echo "" ) >> regression.diffs
|
|
echo failed
|
|
EXITCODE=1
|
|
else
|
|
echo ok
|
|
fi
|
|
done
|
|
|
|
exit $EXITCODE
|