regress.sh 3.0 KB
Newer Older
1
#!/bin/sh
2
# $Header: /cvsroot/pgsql/src/test/regress/Attic/regress.sh,v 1.30 1999/06/14 17:49:06 tgl Exp $
3
#
4
if [ $# -eq 0 ]
5
then
6
	echo "Syntax: $0 <portname> [extra-tests]"
7 8 9
	exit 1
fi

10 11 12 13 14
portname=$1
shift
extratests="$*"

if [ x$portname = "xwin" ]
15 16 17 18 19 20
then
	HOST="-h localhost"
else
	HOST=""
fi

21 22 23 24 25 26 27 28 29
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

30 31 32 33
if [ -d ./obj ]; then
	cd ./obj
fi

34 35
PGTZ="PST8PDT"; export PGTZ
PGDATESTYLE="Postgres,US"; export PGDATESTYLE
B
Bruce Momjian 已提交
36

37
#FRONTEND=monitor
38
FRONTEND="psql $HOST -n -e -q"
39

40
SYSTEM=`../../config.guess | awk -F\- '{ split($3,a,/[0-9]/); printf"%s-%s", $1, a[1] }'`
41

42 43
echo "=============== Notes...                              ================="
echo "postmaster must already be running for the regression tests to succeed."
44 45
echo "The time zone is now set to PST8PDT explicitly by this regression test"
echo " client frontend. Please report any apparent problems to"
46 47
echo "   ports@postgresql.org"
echo "See regress/README for more information."
48
echo ""
49

50
echo "=============== destroying old regression database... ================="
51
destroydb $HOST regression
52

53
echo "=============== creating new regression database...   ================="
M
 
Marc G. Fournier 已提交
54
if [ -n "$MULTIBYTE" ];then
55 56 57
	mbtests=`echo $MULTIBYTE | tr "[A-Z]" "[a-z]"`
	PGCLIENTENCODING="$MULTIBYTE"
	export PGCLIENTENCODING
58
	ENCODINGOPT="-E $MULTIBYTE"
M
Marc G. Fournier 已提交
59 60
else
	mbtests=""
61
	unset PGCLIENTENCODING
62
	ENCODINGOPT=""
M
Marc G. Fournier 已提交
63
fi
64 65 66 67 68 69
createdb $ENCODINGOPT $HOST regression
if [ $? -ne 0 ]; then
     echo createdb failed
     exit 1
fi

70 71 72 73 74 75 76
echo "=============== installing PL/pgSQL...                ================="
createlang $HOST plpgsql regression
if [ $? -ne 0 ]; then
     echo createlang failed
     exit 1
fi

77 78
echo "=============== running regression queries...         ================="
echo "" > regression.diffs
79
for i in `cat sql/tests` $mbtests $extratests
80
do
81
	$ECHO_N "${i} .. " $ECHO_C
82
	$FRONTEND regression < sql/${i}.sql > results/${i}.out 2>&1
83 84
	if [ -f expected/${i}-${SYSTEM}.out ]
	then
85 86 87 88 89
		EXPECTED="expected/${i}-${SYSTEM}.out"
	else
		EXPECTED="expected/${i}.out"
	fi
  
90
	if [ `diff -w ${EXPECTED} results/${i}.out | wc -l` -ne 0 ]
91
	then
M
Marc G. Fournier 已提交
92
		( diff -wC3 ${EXPECTED} results/${i}.out; \
93 94 95
		echo "";  \
		echo "----------------------"; \
		echo "" ) >> regression.diffs
96 97 98 99 100
		echo failed
	else
		echo ok
	fi
done
101 102

exit 0
103

104
echo "=============== running error queries ...             ================="
105
$FRONTEND regression < errors.sql
106
# this will generate error result code
107 108 109 110 111 112 113 114

#set this to 1 to avoid clearing the database
debug=0

if test "$debug" -eq 1
then
echo Skipping clearing and deletion of the regression database
else
115
echo "=============== clearing regression database...       ================="
116 117 118 119 120 121 122
$FRONTEND regression < destroy.sql
if [ $? -ne 0 ]; then
     echo the destroy script has an error
     exit 1
fi

exit 0
123
echo "=============== destroying regression database...     ================="
124 125 126 127 128 129 130 131
destroydb regression
if [ $? -ne 0 ]; then
     echo destroydb failed
     exit 1
fi

exit 0
fi