summaryrefslogtreecommitdiff
path: root/runtests.sh
diff options
context:
space:
mode:
authorMartin Pool <mbp@samba.org>2001-08-29 08:13:19 +0000
committerMartin Pool <mbp@samba.org>2001-08-29 08:13:19 +0000
commit3a4c683f0445965c5800a81e3a54eedf17f2f319 (patch)
tree4c96706df0c880cc97169d5969941360c2c93c48 /runtests.sh
parente7d29902a6a7d9cea7c8a524478bb70062100d34 (diff)
downloadrsync-3a4c683f0445965c5800a81e3a54eedf17f2f319.tar.gz
rsync-3a4c683f0445965c5800a81e3a54eedf17f2f319.tar.bz2
rsync-3a4c683f0445965c5800a81e3a54eedf17f2f319.zip
More test case work:
* make sure to build rsync before running 'make check' * Put back in the loglevel concept from the samba scripts. If >8, then turn on shell tracing. * Allow tests to return 77 if they want to count as 'skipped'. * Add more docs. * Mangle Phil's script to get ready to run on non-Linux systems: we need to not use shell functions, cp -a, etc. Not there yet.
Diffstat (limited to 'runtests.sh')
-rwxr-xr-xruntests.sh57
1 files changed, 49 insertions, 8 deletions
diff --git a/runtests.sh b/runtests.sh
index 2f67d456..39ca364b 100755
--- a/runtests.sh
+++ b/runtests.sh
@@ -52,19 +52,51 @@
# A scratch directory, 'testtmp', is created in the build directory to
# hold working files.
-# Both this script and the Makefile have to be pretty conservative
-# about which Unix features they use.
+# This script also uses the $loglevel environment variable. 1 is the
+# default value, and 10 the most verbose. You can set this from the
+# Make command line. It's also set by the build farm to give more
+# detail for failing builds.
+
+
+# NOTES FOR TEST CASES:
+
+# Each test case runs in its own shell.
# Exit codes: (passed back to build farm):
# 1 tests failed
# 2 error in starting tests
+# 77 this test skipped (random value unlikely to happen by chance, same as
+# automake)
+
+# rsync.fns contains some general setup functions and definitions.
+
+
+# NOTES ON PORTABILITY:
+
+# Both this script and the Makefile have to be pretty conservative
+# about which Unix features they use.
+
+# We cannot count on Make exporting variables to commands, unless
+# they're explicitly given on the command line.
+
+# Also, we can't count on 'cp -a' or 'mkdir -p', although they're
+# pretty handy.
+
+# Eventually we would like to not count on shell functions.
set -e
. "./shconfig"
+RUNSHFLAGS='-e'
+
+if [ -n "$loglevel" ] && [ "$loglevel" -gt 8 ]
+then
+ RUNSHFLAGS="$RUNSHFLAGS -x"
+ set -x
+fi
echo "============================================================"
echo "$0 running in `pwd`"
@@ -98,7 +130,9 @@ mkdir "$scratchdir"
echo " scratchdir=$scratchdir"
suitedir="$srcdir/testsuite"
-for testbase in rsync-hello hands
+export scratchdir suitedir
+
+for testbase in rsync-hello hands ssh-basic
do
testscript="$suitedir/$testbase.test"
if test \! -f "$testscript"
@@ -111,14 +145,21 @@ do
echo "------------------------------------------------------------"
echo "----- $testbase running"
- if sh "$testscript"
+ if sh $RUNSHFLAGS "$testscript"
then
echo "----- $testbase completed succesfully"
passed=`expr $passed + 1`
- else
- echo "----- $testbase failed!"
- failed=`expr $failed + 1`
- fi
+ else
+ case $? in
+ 77)
+ echo "----- $testbase skipped"
+ skipped=`expr $skipped + 1`
+ ;;
+ *)
+ echo "----- $testbase failed!"
+ failed=`expr $failed + 1`
+ esac
+ fi
done
echo '------------------------------------------------------------'