Remove old regression test drivers.

This commit is contained in:
Peter Eisentraut 2000-11-30 20:43:31 +00:00
parent e5ba2fc5b5
commit bf14fb8fa3
5 changed files with 0 additions and 894 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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