Remove old regression test drivers.
This commit is contained in:
parent
e5ba2fc5b5
commit
bf14fb8fa3
@ -1,13 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# check regression tests
|
|
||||||
# usage: checkresults [ regress.out ]
|
|
||||||
|
|
||||||
[ "$#" -eq 0 ] && set regress.out
|
|
||||||
|
|
||||||
for file in `cat "$@" | grep 'failed$' | grep -v '^dropdb: ' | cut -d " " -f 1`
|
|
||||||
do
|
|
||||||
echo "====== $file ======"
|
|
||||||
diff -w expected/$file.out results
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
@ -1,183 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# $Header: /cvsroot/pgsql/src/test/regress/Attic/regress.sh,v 1.56 2000/11/11 19:56:20 thomas Exp $
|
|
||||||
#
|
|
||||||
if [ $# -eq 0 ]; then
|
|
||||||
echo "Syntax: $0 <hostname> [extra-tests]"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
hostname=$1
|
|
||||||
shift
|
|
||||||
extratests="$*"
|
|
||||||
|
|
||||||
case $hostname in
|
|
||||||
i*86-pc-cygwin* | i386-*-qnx* | *beos*)
|
|
||||||
HOSTLOC="-h localhost"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
HOSTLOC=""
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
PGTZ="PST8PDT"; export PGTZ
|
|
||||||
PGDATESTYLE="Postgres,US"; export PGDATESTYLE
|
|
||||||
unset LC_COLLATE LC_CTYPE LC_MONETARY LC_MESSAGES LC_NUMERIC LC_TIME LC_ALL LANG LANGUAGE
|
|
||||||
|
|
||||||
FRONTEND="psql $HOSTLOC -a -q -X"
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Scan resultmap file to find which platform-specific expected files to use.
|
|
||||||
# The format of each line of the file is
|
|
||||||
# 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 :-(
|
|
||||||
# ----------
|
|
||||||
TMPFILE="matches.$$"
|
|
||||||
cat /dev/null > $TMPFILE
|
|
||||||
while read LINE
|
|
||||||
do
|
|
||||||
HOSTPAT=`expr "$LINE" : '.*/\(.*\)='`
|
|
||||||
if [ `expr "$hostname" : "$HOSTPAT"` -ne 0 ]
|
|
||||||
then
|
|
||||||
# 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 <resultmap
|
|
||||||
SUBSTLIST=`cat $TMPFILE`
|
|
||||||
rm -f $TMPFILE
|
|
||||||
|
|
||||||
if [ -d ./obj ]; then
|
|
||||||
cd ./obj
|
|
||||||
fi
|
|
||||||
|
|
||||||
[ -d results ] || mkdir results
|
|
||||||
|
|
||||||
echo "=============== Notes... ================="
|
|
||||||
echo "postmaster must already be running for the regression tests to succeed."
|
|
||||||
echo "The time zone is set to PST8PDT for these tests by the client frontend."
|
|
||||||
echo "Please report any apparent problems to ports@postgresql.org"
|
|
||||||
echo "See regress/README for more information."
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
echo "=============== dropping old regression database... ================="
|
|
||||||
dropdb $HOSTLOC regression
|
|
||||||
|
|
||||||
echo "=============== creating new regression database... ================="
|
|
||||||
if [ -n "$MULTIBYTE" ];then
|
|
||||||
mbtests=`echo $MULTIBYTE | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
|
||||||
PGCLIENTENCODING="$MULTIBYTE"
|
|
||||||
export PGCLIENTENCODING
|
|
||||||
ENCODINGOPT="-E $MULTIBYTE"
|
|
||||||
else
|
|
||||||
mbtests=""
|
|
||||||
unset PGCLIENTENCODING
|
|
||||||
ENCODINGOPT=""
|
|
||||||
fi
|
|
||||||
createdb $ENCODINGOPT $HOSTLOC regression
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo createdb failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "x$hostname" != "xi386-pc-qnx" ]; then
|
|
||||||
echo "=============== installing languages... ================="
|
|
||||||
$ECHO_N "installing PL/pgSQL .. " $ECHO_C
|
|
||||||
createlang $HOSTLOC plpgsql regression
|
|
||||||
if [ $? -ne 0 -a $? -ne 2 ]; then
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo ok
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "=============== running regression queries... ================="
|
|
||||||
cat /dev/null > regression.diffs
|
|
||||||
|
|
||||||
if [ "x$hostname" = "xi386-pc-qnx" ]; then
|
|
||||||
DIFFOPT="-b"
|
|
||||||
else
|
|
||||||
DIFFOPT="-w"
|
|
||||||
fi
|
|
||||||
|
|
||||||
stdtests=`awk '
|
|
||||||
$1=="test" { print $2; }
|
|
||||||
{}
|
|
||||||
' < sql/run_check.tests`
|
|
||||||
|
|
||||||
for tst in $stdtests $mbtests $extratests
|
|
||||||
do
|
|
||||||
$ECHO_N "${tst} .. " $ECHO_C
|
|
||||||
$FRONTEND regression < sql/${tst}.sql > results/${tst}.out 2>&1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Check list extracted from resultmap to see if we should compare
|
|
||||||
# to a system-specific expected file.
|
|
||||||
# There shouldn't be multiple matches, but take the last if there are.
|
|
||||||
#
|
|
||||||
EXPECTED="expected/${tst}.out"
|
|
||||||
for LINE in $SUBSTLIST
|
|
||||||
do
|
|
||||||
if [ `expr "$LINE" : "$tst="` -ne 0 ]
|
|
||||||
then
|
|
||||||
SUBST=`echo "$LINE" | sed 's/^.*=//'`
|
|
||||||
EXPECTED="expected/${SUBST}.out"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ `diff ${DIFFOPT} ${EXPECTED} results/${tst}.out | wc -l` -ne 0 ]; then
|
|
||||||
( diff ${DIFFOPT} -C3 ${EXPECTED} results/${tst}.out; \
|
|
||||||
echo ""; \
|
|
||||||
echo "----------------------"; \
|
|
||||||
echo "" ) >> regression.diffs
|
|
||||||
echo failed
|
|
||||||
else
|
|
||||||
echo ok
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
echo "=============== running error queries ... ================="
|
|
||||||
$FRONTEND regression < errors.sql
|
|
||||||
# this will generate error result code
|
|
||||||
|
|
||||||
#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
|
|
||||||
echo "=============== clearing regression database... ================="
|
|
||||||
$FRONTEND regression < drop.sql
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo the drop script has an error
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
echo "=============== dropping regression database... ================="
|
|
||||||
dropdb regression
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo dropdb failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
fi
|
|
@ -1,489 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# $Header: /cvsroot/pgsql/src/test/regress/Attic/run_check.sh,v 1.26 2000/09/29 17:17:37 petere Exp $
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Check call syntax
|
|
||||||
# ----------
|
|
||||||
if [ $# -eq 0 ]
|
|
||||||
then
|
|
||||||
echo "Syntax: $0 <hostname> [extra-tests]"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Change to the regression test directory explicitly
|
|
||||||
# ----------
|
|
||||||
cd `dirname $0`
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Some paths used during the test
|
|
||||||
# ----------
|
|
||||||
PWD=`pwd`
|
|
||||||
CHKDIR="$PWD/tmp_check"
|
|
||||||
PGDATA="$CHKDIR/data"
|
|
||||||
LIBDIR="$CHKDIR/lib"
|
|
||||||
BINDIR="$CHKDIR/bin"
|
|
||||||
LOGDIR="$CHKDIR/log"
|
|
||||||
TIMDIR="$CHKDIR/timestamp"
|
|
||||||
PGPORT="65432"
|
|
||||||
PGLIB="$LIBDIR"
|
|
||||||
PMPID=""
|
|
||||||
PMOPTIONS=${PMOPTIONS:-"-o -F"}
|
|
||||||
|
|
||||||
export CHKDIR
|
|
||||||
export PGDATA
|
|
||||||
export PGLIB
|
|
||||||
export LOGDIR
|
|
||||||
export TIMDIR
|
|
||||||
export PGPORT
|
|
||||||
|
|
||||||
# Needed by psql and pg_encoding (if you run multibyte).
|
|
||||||
# I hope this covers all platforms with shared libraries,
|
|
||||||
# otherwise feel free to cover your platform here as well.
|
|
||||||
if [ "$LD_LIBRARY_PATH" ]; then
|
|
||||||
old_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
|
|
||||||
LD_LIBRARY_PATH="$LIBDIR:$old_LD_LIBRARY_PATH"
|
|
||||||
else
|
|
||||||
LD_LIBRARY_PATH="$LIBDIR"
|
|
||||||
fi
|
|
||||||
export LD_LIBRARY_PATH
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Unset locale settings
|
|
||||||
# ----------
|
|
||||||
|
|
||||||
unset LC_COLLATE LC_CTYPE LC_MONETARY LC_MESSAGES LC_NUMERIC LC_TIME LC_ALL LANG LANGUAGE
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Get the commandline parameters
|
|
||||||
# ----------
|
|
||||||
hostname=$1
|
|
||||||
shift
|
|
||||||
extratests="$*"
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Special setting for Windows (no unix domain sockets)
|
|
||||||
# ----------
|
|
||||||
if [ "x$hostname" = "xwin" -o "x$hostname" = "xi386-pc-qnx" ]
|
|
||||||
then
|
|
||||||
HOSTLOC="-h localhost"
|
|
||||||
USETCPIP="-i"
|
|
||||||
else
|
|
||||||
HOSTLOC=""
|
|
||||||
USETCPIP=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
unset PGHOST
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Determine if echo -n works
|
|
||||||
# ----------
|
|
||||||
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
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Set backend timezone and datestyle explicitly
|
|
||||||
#
|
|
||||||
# To pass the horology test in its current form, the postmaster must be
|
|
||||||
# started with PGDATESTYLE=ISO, while the frontend must be started with
|
|
||||||
# PGDATESTYLE=Postgres. We set the postmaster values here and change
|
|
||||||
# to the frontend settings after the postmaster has been started.
|
|
||||||
# ----------
|
|
||||||
PGTZ="PST8PDT"; export PGTZ
|
|
||||||
PGDATESTYLE="ISO,US"; export PGDATESTYLE
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# The SQL shell to use during this test
|
|
||||||
# ----------
|
|
||||||
FRONTEND="$BINDIR/psql $HOSTLOC -a -q -X"
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Scan resultmap file to find which platform-specific expected files to use.
|
|
||||||
# The format of each line of the file is
|
|
||||||
# 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 :-(
|
|
||||||
# ----------
|
|
||||||
TMPFILE="matches.$$"
|
|
||||||
cat /dev/null > $TMPFILE
|
|
||||||
while read LINE
|
|
||||||
do
|
|
||||||
HOSTPAT=`expr "$LINE" : '.*/\(.*\)='`
|
|
||||||
if [ `expr "$hostname" : "$HOSTPAT"` -ne 0 ]
|
|
||||||
then
|
|
||||||
# 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 <resultmap
|
|
||||||
SUBSTLIST=`cat $TMPFILE`
|
|
||||||
rm -f $TMPFILE
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Catch SIGINT and SIGTERM to shutdown the postmaster
|
|
||||||
# ----------
|
|
||||||
trap ' echo ""
|
|
||||||
echo ""
|
|
||||||
echo "user abort ..."
|
|
||||||
if [ ! -z "$PMPID" ]
|
|
||||||
then
|
|
||||||
echo "Signalling postmaster with PID $PMPID to shutdown immediately"
|
|
||||||
kill -2 $PMPID
|
|
||||||
wait $PMPID
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
LD_LIBRARY_PATH="$old_LD_LIBRARY_PATH"
|
|
||||||
exit 1
|
|
||||||
' 2 15
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Prepare a clean check directory
|
|
||||||
# ----------
|
|
||||||
if [ -d $CHKDIR ]
|
|
||||||
then
|
|
||||||
echo "=============== Removing old ./tmp_check directory ... ================"
|
|
||||||
rm -rf $CHKDIR
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "=============== Create ./tmp_check directory ================"
|
|
||||||
mkdir -p $CHKDIR
|
|
||||||
mkdir -p $LOGDIR
|
|
||||||
mkdir -p results
|
|
||||||
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Install this build into ./tmp/check
|
|
||||||
# ----------
|
|
||||||
echo "=============== Installing new build into ./tmp_check ================"
|
|
||||||
${MAKE:-gmake} -C ../../.. POSTGRESDIR=$CHKDIR prefix=$CHKDIR install >$LOGDIR/install.log 2>&1
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]
|
|
||||||
then
|
|
||||||
echo ""
|
|
||||||
echo "ERROR: Check installation failed - cannot continue"
|
|
||||||
echo "Please examine $LOGDIR/install.log"
|
|
||||||
echo "for the reason."
|
|
||||||
echo ""
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Change the path so that all binaries from the current
|
|
||||||
# build are first candidates
|
|
||||||
# ----------
|
|
||||||
PATH=$CHKDIR/bin:$PATH
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Run initdb to initialize a database system in ./tmp_check
|
|
||||||
# ----------
|
|
||||||
echo "=============== Initializing check database instance ================"
|
|
||||||
initdb -D $PGDATA -L $CHKDIR/share --noclean >$LOGDIR/initdb.log 2>&1
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]
|
|
||||||
then
|
|
||||||
echo ""
|
|
||||||
echo "ERROR: Check initdb failed - cannot continue"
|
|
||||||
echo "Please examine $LOGDIR/initdb.log"
|
|
||||||
echo "for the reason."
|
|
||||||
echo ""
|
|
||||||
exit 3
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Start a postmaster for the check instance and give
|
|
||||||
# him some time to pass the WAL recovery code.
|
|
||||||
#----------
|
|
||||||
echo "=============== Starting regression postmaster ================"
|
|
||||||
postmaster -D $PGDATA $USETCPIP -p $PGPORT $PMOPTIONS >$LOGDIR/postmaster.log 2>&1 &
|
|
||||||
PMPID=$!
|
|
||||||
sleep 2
|
|
||||||
|
|
||||||
if kill -0 $PMPID >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
echo "Regression postmaster is running - PID=$PMPID PGPORT=$PGPORT"
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
echo "ERROR: Regression postmaster did not startup."
|
|
||||||
echo "Please examine $LOGDIR/postmaster.log"
|
|
||||||
echo "for the reason."
|
|
||||||
echo ""
|
|
||||||
exit 4
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Set frontend timezone and datestyle explicitly
|
|
||||||
# ----------
|
|
||||||
PGTZ="PST8PDT"; export PGTZ
|
|
||||||
PGDATESTYLE="Postgres,US"; export PGDATESTYLE
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Create the regression database
|
|
||||||
# ----------
|
|
||||||
echo "=============== Creating regression database... ================"
|
|
||||||
if [ -n "$MULTIBYTE" ];then
|
|
||||||
mbtests=`echo $MULTIBYTE | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
|
||||||
PGCLIENTENCODING="$MULTIBYTE"
|
|
||||||
export PGCLIENTENCODING
|
|
||||||
ENCODINGOPT="-E $MULTIBYTE"
|
|
||||||
else
|
|
||||||
mbtests=""
|
|
||||||
unset PGCLIENTENCODING
|
|
||||||
ENCODINGOPT=""
|
|
||||||
fi
|
|
||||||
createdb $ENCODINGOPT $HOSTLOC regression
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo createdb failed
|
|
||||||
kill -15 $PMPID
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Install the PL/pgSQL language in it
|
|
||||||
# ----------
|
|
||||||
if [ "x$hostname" != "xi386-pc-qnx" ]; then
|
|
||||||
echo "=============== Installing PL/pgSQL... ================"
|
|
||||||
createlang -L $LIBDIR $HOSTLOC plpgsql regression
|
|
||||||
if [ $? -ne 0 -a $? -ne 2 ]; then
|
|
||||||
echo createlang failed
|
|
||||||
kill -15 $PMPID
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Run the regression tests specified in the ./sql/run_check.tests file
|
|
||||||
# ----------
|
|
||||||
echo "=============== Running regression queries... ================"
|
|
||||||
cat /dev/null > regression.diffs
|
|
||||||
cat /dev/null > regress.out
|
|
||||||
|
|
||||||
if [ "x$hostname" = "xi386-pc-qnx" ]; then
|
|
||||||
DIFFOPT="-b"
|
|
||||||
else
|
|
||||||
DIFFOPT="-w"
|
|
||||||
fi
|
|
||||||
|
|
||||||
TESTS=./sql/run_check.tests
|
|
||||||
lno=0
|
|
||||||
(
|
|
||||||
cat $TESTS
|
|
||||||
for name in $extratests ; do
|
|
||||||
echo "test $name"
|
|
||||||
done
|
|
||||||
) | while read line ; do
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Count line numbers and skip comments and empty lines
|
|
||||||
# ----------
|
|
||||||
lno=`expr $lno + 1`
|
|
||||||
line=`echo $line | sed -e 's/[ ]*#.*//'`
|
|
||||||
if [ -z "$line" ]
|
|
||||||
then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Extract the type keyword and the name
|
|
||||||
# ----------
|
|
||||||
type=`echo $line | awk '{print $1;}'`
|
|
||||||
name=`echo $line | awk '{print $2;}'`
|
|
||||||
|
|
||||||
case $type in
|
|
||||||
parallel) # ----------
|
|
||||||
# This is the beginning of a new group of
|
|
||||||
# tests that should be executed in parallel.
|
|
||||||
# ----------
|
|
||||||
parlist=
|
|
||||||
parlno=$lno
|
|
||||||
pargroup=$name
|
|
||||||
parntests=0
|
|
||||||
parpar=0
|
|
||||||
while read line ; do
|
|
||||||
# ----------
|
|
||||||
# Again count line numbers and skip comments
|
|
||||||
# ----------
|
|
||||||
lno=`expr $lno + 1`
|
|
||||||
line=`echo $line | sed -e 's/[ ]*#.*//'`
|
|
||||||
if [ -z "$line" ]
|
|
||||||
then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Collect and count the number of tests to
|
|
||||||
# execute parallel
|
|
||||||
# ----------
|
|
||||||
type=`echo $line | awk '{print $1;}'`
|
|
||||||
name=`echo $line | awk '{print $2;}'`
|
|
||||||
|
|
||||||
if [ "$type" = "endparallel" ]
|
|
||||||
then
|
|
||||||
parend=1
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if [ "$type" = "parallel" ]
|
|
||||||
then
|
|
||||||
echo ""
|
|
||||||
echo "$TESTS line $lno: parallel cannot be nested"
|
|
||||||
echo ""
|
|
||||||
exit 5
|
|
||||||
fi
|
|
||||||
if [ "$type" != "test" ]
|
|
||||||
then
|
|
||||||
echo ""
|
|
||||||
echo "$TESTS line $lno: syntax error"
|
|
||||||
echo ""
|
|
||||||
exit 5
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -z "$parlist" ]
|
|
||||||
then
|
|
||||||
parlist="$parlist "
|
|
||||||
fi
|
|
||||||
|
|
||||||
parlist="${parlist}$name"
|
|
||||||
parntests=`expr $parntests + 1`
|
|
||||||
done
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Check that we found a matching 'endparallel'
|
|
||||||
# ----------
|
|
||||||
if [ $parend -eq 0 ]
|
|
||||||
then
|
|
||||||
echo ""
|
|
||||||
echo "$TESTS at EOF: missing endparallel for line $parlno"
|
|
||||||
echo ""
|
|
||||||
exit 5
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Tell what we're doing and then start them all, using
|
|
||||||
# a subshell for each one. The subshell is just there
|
|
||||||
# to print the test name when it finishes, so one can
|
|
||||||
# see which tests finish fastest. We do NOT run the
|
|
||||||
# ok/failed comparison tests in the parallel subshells,
|
|
||||||
# because we want the diffs (if any) to come out in a
|
|
||||||
# predictable order --- and certainly not interleaved!
|
|
||||||
# ----------
|
|
||||||
gnam=`echo "$pargroup ($parntests tests)" | awk '{printf "%-26.26s", $0;}'`
|
|
||||||
echo "parallel $gnam ..."
|
|
||||||
|
|
||||||
for name in $parlist
|
|
||||||
do
|
|
||||||
(
|
|
||||||
$FRONTEND regression < sql/${name}.sql \
|
|
||||||
> results/${name}.out 2>&1
|
|
||||||
$ECHO_N " $name" $ECHO_C
|
|
||||||
) &
|
|
||||||
done
|
|
||||||
wait
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Setup status information for the diff check below
|
|
||||||
# ----------
|
|
||||||
checklist="$parlist"
|
|
||||||
checkpname=1
|
|
||||||
;;
|
|
||||||
|
|
||||||
test) # ----------
|
|
||||||
# This is a test that must be executed serialized
|
|
||||||
# ----------
|
|
||||||
pnam=`echo $name | awk '{printf "%-20.20s", $1;}'`
|
|
||||||
$ECHO_N "sequential test $pnam ... " $ECHO_C
|
|
||||||
|
|
||||||
$FRONTEND regression < sql/${name}.sql \
|
|
||||||
> results/${name}.out 2>&1
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Setup status information for the diff check below
|
|
||||||
# ----------
|
|
||||||
checklist="$name"
|
|
||||||
checkpname=0
|
|
||||||
;;
|
|
||||||
|
|
||||||
*) # ----------
|
|
||||||
# And this is space for extensions
|
|
||||||
# ----------
|
|
||||||
echo ""
|
|
||||||
echo "$TESTS line $lno: syntax error"
|
|
||||||
echo ""
|
|
||||||
exit 5
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# One single or a group of parallel tests has been completed.
|
|
||||||
# Check the output against the expected results.
|
|
||||||
#
|
|
||||||
# On the fly we create run_check.out and regress.out in the
|
|
||||||
# old format, so checkresults will still find the proper
|
|
||||||
# information.
|
|
||||||
# ----------
|
|
||||||
for name in $checklist ; do
|
|
||||||
if [ $checkpname -ne 0 ]
|
|
||||||
then
|
|
||||||
pnam=`echo $name | awk '{printf "%-20.20s", $1;}'`
|
|
||||||
$ECHO_N " test $pnam ... " $ECHO_C
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Check list extracted from resultmap to see if we should compare
|
|
||||||
# to a system-specific expected file.
|
|
||||||
# There shouldn't be multiple matches, but take the last if there are.
|
|
||||||
#
|
|
||||||
EXPECTED="expected/${name}.out"
|
|
||||||
for LINE in $SUBSTLIST
|
|
||||||
do
|
|
||||||
if [ `expr "$LINE" : "$name="` -ne 0 ]
|
|
||||||
then
|
|
||||||
SUBST=`echo "$LINE" | sed 's/^.*=//'`
|
|
||||||
EXPECTED="expected/${SUBST}.out"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ `diff ${DIFFOPT} ${EXPECTED} results/${name}.out | wc -l` -ne 0 ]
|
|
||||||
then
|
|
||||||
( diff ${DIFFOPT} -C3 ${EXPECTED} results/${name}.out ; \
|
|
||||||
echo "" ; \
|
|
||||||
echo "----------------------" ; \
|
|
||||||
echo "" ; \
|
|
||||||
) >> regression.diffs
|
|
||||||
echo "FAILED"
|
|
||||||
echo "$name .. failed" >> regress.out
|
|
||||||
else
|
|
||||||
echo "ok"
|
|
||||||
echo "$name .. ok" >> regress.out
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done | tee run_check.out 2>&1
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Finally kill the postmaster we started
|
|
||||||
# ----------
|
|
||||||
echo "=============== Terminating regression postmaster ================"
|
|
||||||
kill -15 $PMPID
|
|
||||||
|
|
||||||
LD_LIBRARY_PATH="$old_LD_LIBRARY_PATH"
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,136 +0,0 @@
|
|||||||
# ----------
|
|
||||||
# The first group of parallel test
|
|
||||||
# ----------
|
|
||||||
parallel group1
|
|
||||||
test boolean
|
|
||||||
test char
|
|
||||||
test name
|
|
||||||
test varchar
|
|
||||||
test text
|
|
||||||
test int2
|
|
||||||
test int4
|
|
||||||
test int8
|
|
||||||
test oid
|
|
||||||
test float4
|
|
||||||
test float8
|
|
||||||
test numeric
|
|
||||||
endparallel
|
|
||||||
|
|
||||||
test strings # Depends on things setup during char, varchar and text
|
|
||||||
test numerology # Depends on int2, int4, int8, float4, float8
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# The second group of parallel test
|
|
||||||
# ----------
|
|
||||||
parallel group2
|
|
||||||
test point
|
|
||||||
test lseg
|
|
||||||
test box
|
|
||||||
test path
|
|
||||||
test polygon
|
|
||||||
test circle
|
|
||||||
test date
|
|
||||||
test time
|
|
||||||
test timestamp
|
|
||||||
test interval
|
|
||||||
test abstime
|
|
||||||
test reltime
|
|
||||||
test tinterval
|
|
||||||
test inet
|
|
||||||
test comments
|
|
||||||
test oidjoins
|
|
||||||
test type_sanity
|
|
||||||
test opr_sanity
|
|
||||||
endparallel
|
|
||||||
|
|
||||||
test geometry # Depends on point, lseg, box, path, polygon and circle
|
|
||||||
test horology # Depends on interval, timestamp, reltime and abstime
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# These four each depend on the previous one
|
|
||||||
# ----------
|
|
||||||
test create_function_1
|
|
||||||
test create_type
|
|
||||||
test create_table
|
|
||||||
test create_function_2
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Load huge amounts of data
|
|
||||||
# We should split the data files into single files and then
|
|
||||||
# execute two copy tests parallel, to check that copy itself
|
|
||||||
# is concurrent safe.
|
|
||||||
# ----------
|
|
||||||
test copy
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# The third group of parallel test
|
|
||||||
# ----------
|
|
||||||
parallel group3
|
|
||||||
test constraints
|
|
||||||
test triggers
|
|
||||||
test create_misc
|
|
||||||
test create_aggregate
|
|
||||||
test create_operator
|
|
||||||
test create_index
|
|
||||||
test inherit
|
|
||||||
endparallel
|
|
||||||
|
|
||||||
test create_view # Depends on the above
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# sanity_check does a vacuum, affecting the sort order of SELECT *
|
|
||||||
# results. So it should not run parallel to other tests.
|
|
||||||
# ----------
|
|
||||||
test sanity_check
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# Believe it or not, select creates a table, subsequent
|
|
||||||
# tests need.
|
|
||||||
# ----------
|
|
||||||
test errors
|
|
||||||
test select
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# The fourth group of parallel test
|
|
||||||
# ----------
|
|
||||||
parallel group4
|
|
||||||
test select_into
|
|
||||||
test select_distinct
|
|
||||||
test select_distinct_on
|
|
||||||
test select_implicit
|
|
||||||
test select_having
|
|
||||||
test subselect
|
|
||||||
test union
|
|
||||||
test case
|
|
||||||
test join
|
|
||||||
test aggregates
|
|
||||||
test transactions
|
|
||||||
test random
|
|
||||||
test portals
|
|
||||||
test arrays
|
|
||||||
test btree_index
|
|
||||||
test hash_index
|
|
||||||
endparallel
|
|
||||||
|
|
||||||
test misc
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# The fifth group of parallel test
|
|
||||||
# ----------
|
|
||||||
parallel group5
|
|
||||||
test select_views
|
|
||||||
test alter_table
|
|
||||||
test portals_p2
|
|
||||||
test rules
|
|
||||||
test foreign_key
|
|
||||||
endparallel
|
|
||||||
|
|
||||||
# ----------
|
|
||||||
# The sixth group of parallel test
|
|
||||||
# ----------
|
|
||||||
parallel group6
|
|
||||||
test limit
|
|
||||||
test plpgsql # Cannot run concurrently to rules
|
|
||||||
test temp
|
|
||||||
endparallel
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
|||||||
boolean
|
|
||||||
char
|
|
||||||
name
|
|
||||||
varchar
|
|
||||||
text
|
|
||||||
strings
|
|
||||||
int2
|
|
||||||
int4
|
|
||||||
int8
|
|
||||||
oid
|
|
||||||
float4
|
|
||||||
float8
|
|
||||||
numerology
|
|
||||||
point
|
|
||||||
lseg
|
|
||||||
box
|
|
||||||
path
|
|
||||||
polygon
|
|
||||||
circle
|
|
||||||
geometry
|
|
||||||
date
|
|
||||||
time
|
|
||||||
timestamp
|
|
||||||
interval
|
|
||||||
abstime
|
|
||||||
reltime
|
|
||||||
tinterval
|
|
||||||
horology
|
|
||||||
inet
|
|
||||||
comments
|
|
||||||
oidjoins
|
|
||||||
type_sanity
|
|
||||||
opr_sanity
|
|
||||||
create_function_1
|
|
||||||
create_type
|
|
||||||
create_table
|
|
||||||
create_function_2
|
|
||||||
constraints
|
|
||||||
triggers
|
|
||||||
copy
|
|
||||||
create_misc
|
|
||||||
create_aggregate
|
|
||||||
create_operator
|
|
||||||
create_view
|
|
||||||
create_index
|
|
||||||
sanity_check
|
|
||||||
errors
|
|
||||||
select
|
|
||||||
select_into
|
|
||||||
select_distinct
|
|
||||||
select_distinct_on
|
|
||||||
select_implicit
|
|
||||||
select_having
|
|
||||||
subselect
|
|
||||||
union
|
|
||||||
case
|
|
||||||
join
|
|
||||||
aggregates
|
|
||||||
transactions
|
|
||||||
random
|
|
||||||
portals
|
|
||||||
misc
|
|
||||||
arrays
|
|
||||||
btree_index
|
|
||||||
hash_index
|
|
||||||
select_views
|
|
||||||
alter_table
|
|
||||||
portals_p2
|
|
||||||
rules
|
|
||||||
limit
|
|
||||||
plpgsql
|
|
||||||
temp
|
|
||||||
numeric
|
|
Loading…
x
Reference in New Issue
Block a user