diff options
Diffstat (limited to 'src/test/mb/mbregress.sh')
-rwxr-xr-x | src/test/mb/mbregress.sh | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/test/mb/mbregress.sh b/src/test/mb/mbregress.sh new file mode 100755 index 0000000..c313565 --- /dev/null +++ b/src/test/mb/mbregress.sh @@ -0,0 +1,74 @@ +#! /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 |