Refactor the process of running the regression tests to allow it to be

only a partial run.  Also modified to reduce the verbosity of the creation
and loading of the sample database so that we treat those elements as
tests also.
This commit is contained in:
Andrew McMillan 2006-11-20 14:10:10 +13:00
parent e18ad13327
commit 9f926627ce
3 changed files with 81 additions and 23 deletions

View File

@ -3,36 +3,58 @@
# Run the regression tests and display differences
#
DBNAME=caldav
UNTIL=${1:-"99999"}
REGRESSION="tests/regression-suite"
RESULTS="${REGRESSION}/results"
check_result() {
TEST="$1"
if [ ! -f "${REGRESSION}/${TEST}.result" ] ; then
touch "${REGRESSION}/${TEST}.result"
fi
diff -u "${REGRESSION}/${TEST}.result" "${RESULTS}/${TEST}" >"${REGRESSION}/diffs/${TEST}"
if [ -s "${REGRESSION}/diffs/${TEST}" -o ! -f "${REGRESSION}/${TEST}.result" ] ; then
echo "======================================="
echo "Displaying diff for test ${TEST}"
echo "======================================="
cat "${REGRESSION}/diffs/${TEST}"
read -p "Accept this as new standard result [y/N]? " ACCEPT
if [ "${ACCEPT}" = "y" ] ; then
cp "${RESULTS}/${TEST}" "${REGRESSION}/${TEST}.result"
fi
else
echo "Test ${TEST} passed OK!"
fi
}
# Restart PGPool to ensure we can drop and recreate the database
# FIXME: We should really drop everything *from* the database and create it
# from that, so we don't need to do this.
sudo /etc/init.d/pgpool restart
dropdb ${DBNAME}
../dba/create-database.sh ${DBNAME}
psql -q -f "../dba/sample-data.sql" "${DBNAME}"
if ! dropdb ${DBNAME}; then
echo "Unable to drop existing database"
exit
fi
for T in tests/regression-suite/*.test ; do
TEST="`basename ${T} .test`"
./dav_test regression-suite "${TEST}" | ./normalise_result > "tests/regression-suite/results/${TEST}"
if [ ! -f "tests/regression-suite/${TEST}.result" ] ; then
touch "tests/regression-suite/${TEST}.result"
fi
diff -u "tests/regression-suite/${TEST}.result" "tests/regression-suite/results/${TEST}" >"tests/regression-suite/diffs/${TEST}"
done
TEST="Create-Database"
../dba/create-database.sh ${DBNAME} >"${RESULTS}/${TEST}" 2>&1
check_result "${TEST}"
for T in tests/regression-suite/*.test ; do
TEST="Load-Sample-Data"
psql -q -f "../dba/sample-data.sql" "${DBNAME}" >"${RESULTS}/${TEST}" 2>&1
check_result "${TEST}"
for T in ${REGRESSION}/*.test ; do
TEST="`basename ${T} .test`"
if [ -s "tests/regression-suite/diffs/${TEST}" -o ! -f "tests/regression-suite/${TEST}.result" ] ; then
echo "======================================="
echo "Displaying diff for test ${TEST}"
echo "======================================="
cat "tests/regression-suite/diffs/${TEST}"
read -p "Accept this as new standard result [y/N]? " ACCEPT
if [ "${ACCEPT}" = "y" ] ; then
cp "tests/regression-suite/results/${TEST}" "tests/regression-suite/${TEST}.result"
fi
else
echo "Test ${TEST} passed OK!"
TESTNUM="`echo ${TEST} | cut -f1 -d'-'`"
TESTNUM="${TEST/-*}"
if [ "${TESTNUM}" -gt "${UNTIL}" ] ; then
break;
fi
./dav_test regression-suite "${TEST}" | ./normalise_result > "${RESULTS}/${TEST}"
check_result "${TEST}"
done

View File

@ -0,0 +1,26 @@
CREATE DATABASE
new_db_revision
-----------------
t
(1 row)
new_db_revision
-----------------
t
(1 row)
setval
--------
10
(1 row)
setval
--------
1000
(1 row)
setval
--------
10
(1 row)

View File

@ -0,0 +1,10 @@
setval
--------
1000
(1 row)
setval
--------
10
(1 row)