# Each test case runs in its own shell.
-# Exit codes: (passed back to build farm):
+# Exit codes from tests:
# 1 tests failed
# 2 error in starting tests
# 77 this test skipped (random value unlikely to happen by chance, same as
# automake)
+# HOWEVER, the overall exit code to the farm is different: we return
+# the *number of tests that failed*, so that it will show up nicely in
+# the overall summary.
+
# rsync.fns contains some general setup functions and definitions.
# 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.
+# I think some of the GNU documentation suggests that we shouldn't
+# rely on shell functions. However, the Bash manual seems to say that
+# they're in POSIX 1003.2, and since the build farm relies on them
+# they're probably working on most machines we really care about.
set -e
exit 2
fi
+RSYNC="$rsync_bin"
-export rsync_bin
+export rsync_bin RSYNC
skipped=0
missing=0
scratchdir=./testtmp
[ -d "$scratchdir" ] && rm -r "$scratchdir"
mkdir "$scratchdir"
-
+scratchdir=`cd $scratchdir && pwd`
echo " scratchdir=$scratchdir"
+
suitedir="$srcdir/testsuite"
export scratchdir suitedir
continue
fi
- echo "------------------------------------------------------------"
- echo "----- $testbase running"
+ echo "----- $testbase starting"
if sh $RUNSHFLAGS "$testscript"
then
*)
echo "----- $testbase failed!"
failed=`expr $failed + 1`
+ [ "$nopersist" = "yes" ] && exit 1
esac
fi
done
echo " $missing missing"
echo '------------------------------------------------------------'
-if test $failed -gt 0
-then
- exit 1
-else
- exit 0
-fi
+exit `expr $failed + $missing`