#!/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]"
# 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
fi
echo "=============== running regression queries... ================="
-echo "" > regression.diffs
+cat /dev/null > regression.diffs
if [ "x$hostname" = "xi386-pc-qnx" ]; then
DIFFOPT="-b"
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"
#!/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
# 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
# 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"
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"