diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-05-24 22:32:59 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-05-24 22:32:59 +0000 |
commit | ae8a2c35895a16214e8789cda328c161816d1ab8 (patch) | |
tree | aacb1e8e76e03a9cf6ba44e41cad2cd8e130c5ef | |
parent | 69b323f4bc16baca4f7793a2b09b43232a17031b (diff) | |
download | postgresql-ae8a2c35895a16214e8789cda328c161816d1ab8.tar.gz postgresql-ae8a2c35895a16214e8789cda328c161816d1ab8.zip |
Make the world safe for QNX's busted shell ...
-rwxr-xr-x | src/test/regress/regress.sh | 26 | ||||
-rwxr-xr-x | src/test/regress/run_check.sh | 29 |
2 files changed, 37 insertions, 18 deletions
diff --git a/src/test/regress/regress.sh b/src/test/regress/regress.sh index ba6e57478cb..ef58dc34a98 100755 --- a/src/test/regress/regress.sh +++ b/src/test/regress/regress.sh @@ -1,5 +1,5 @@ #!/bin/sh -# $Header: /cvsroot/pgsql/src/test/regress/Attic/regress.sh,v 1.50 2000/05/16 02:14:15 tgl Exp $ +# $Header: /cvsroot/pgsql/src/test/regress/Attic/regress.sh,v 1.51 2000/05/24 22:32:58 tgl Exp $ # if [ $# -eq 0 ]; then echo "Syntax: $0 <hostname> [extra-tests]" @@ -41,17 +41,27 @@ FRONTEND="psql $HOSTLOC -a -q -X" # testname/hostnamepattern=substitutefile # where the hostnamepattern is evaluated per the rules of expr(1) --- namely, # it is a standard regular expression with an implicit ^ at the start. +# +# The tempfile hackery is needed because some shells will run the loop +# inside a subshell, whereupon shell variables set therein aren't seen +# outside the loop :-( # ---------- -SUBSTLIST="" -RESULTMAP=`cat resultmap` -for LINE in $RESULTMAP +TMPFILE="matches.$$" +cat /dev/null > $TMPFILE +while read LINE do HOSTPAT=`expr "$LINE" : '.*/\(.*\)='` if [ `expr "$hostname" : "$HOSTPAT"` -ne 0 ] then - SUBSTLIST="$SUBSTLIST $LINE" + # remove hostnamepattern from line so that there are no shell + # wildcards in SUBSTLIST; else later 'for' could expand them! + TESTNAME=`expr "$LINE" : '\(.*\)/'` + SUBST=`echo "$LINE" | sed 's/^.*=//'` + echo "$TESTNAME=$SUBST" >> $TMPFILE fi -done +done <resultmap +SUBSTLIST=`cat $TMPFILE` +rm -f $TMPFILE if [ -d ./obj ]; then cd ./obj @@ -97,7 +107,7 @@ fi fi echo "=============== running regression queries... =================" -echo "" > regression.diffs +cat /dev/null > regression.diffs if [ "x$hostname" = "xi386-pc-qnx" ]; then DIFFOPT="-b" @@ -123,7 +133,7 @@ do EXPECTED="expected/${tst}.out" for LINE in $SUBSTLIST do - if [ `expr "$LINE" : "$tst/"` -ne 0 ] + if [ `expr "$LINE" : "$tst="` -ne 0 ] then SUBST=`echo "$LINE" | sed 's/^.*=//'` EXPECTED="expected/${SUBST}.out" diff --git a/src/test/regress/run_check.sh b/src/test/regress/run_check.sh index 80983cd6d17..05393198867 100755 --- a/src/test/regress/run_check.sh +++ b/src/test/regress/run_check.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# $Header: /cvsroot/pgsql/src/test/regress/Attic/run_check.sh,v 1.18 2000/05/18 16:11:39 momjian Exp $ +# $Header: /cvsroot/pgsql/src/test/regress/Attic/run_check.sh,v 1.19 2000/05/24 22:32:59 tgl Exp $ # ---------- # Check call syntax @@ -104,18 +104,27 @@ FRONTEND="$BINDIR/psql $HOSTLOC -a -q -X" # testname/hostnamepattern=substitutefile # where the hostnamepattern is evaluated per the rules of expr(1) --- namely, # it is a standard regular expression with an implicit ^ at the start. +# +# The tempfile hackery is needed because some shells will run the loop +# inside a subshell, whereupon shell variables set therein aren't seen +# outside the loop :-( # ---------- -SUBSTLIST="" -exec 4<resultmap -while read LINE <&4 +TMPFILE="matches.$$" +cat /dev/null > $TMPFILE +while read LINE do HOSTPAT=`expr "$LINE" : '.*/\(.*\)='` if [ `expr "$hostname" : "$HOSTPAT"` -ne 0 ] then - SUBSTLIST="$SUBSTLIST $LINE" + # remove hostnamepattern from line so that there are no shell + # wildcards in SUBSTLIST; else later 'for' could expand them! + TESTNAME=`expr "$LINE" : '\(.*\)/'` + SUBST=`echo "$LINE" | sed 's/^.*=//'` + echo "$TESTNAME=$SUBST" >> $TMPFILE fi -done -exec 4<&- +done <resultmap +SUBSTLIST=`cat $TMPFILE` +rm -f $TMPFILE # ---------- # Catch SIGINT and SIGTERM to shutdown the postmaster @@ -258,8 +267,8 @@ fi # Run the regression tests specified in the ./sql/run_check.tests file # ---------- echo "=============== Running regression queries... ================" -echo "" > regression.diffs -echo "" > regress.out +cat /dev/null > regression.diffs +cat /dev/null > regress.out if [ "x$hostname" = "xi386-pc-qnx" ]; then DIFFOPT="-b" @@ -439,7 +448,7 @@ lno=0 EXPECTED="expected/${name}.out" for LINE in $SUBSTLIST do - if [ `expr "$LINE" : "$name/"` -ne 0 ] + if [ `expr "$LINE" : "$name="` -ne 0 ] then SUBST=`echo "$LINE" | sed 's/^.*=//'` EXPECTED="expected/${SUBST}.out" |