Apparently '!' to invert a pipeline result doesn't work on UnixWare.
[rsync/rsync.git] / runtests.sh
index c27afda..1d28437 100755 (executable)
 
 # 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.
 
 
@@ -106,13 +110,13 @@ echo "$0 running in `pwd`"
 echo "    rsync_bin=$rsync_bin"
 echo "    srcdir=$srcdir"
 
-if ! test -f $rsync_bin
+if test ! -f $rsync_bin
 then
     echo "rsync_bin $rsync_bin is not a file" >&2
     exit 2
 fi
 
-if ! test -d $srcdir
+if test ! -d $srcdir
 then
     echo "srcdir $srcdir is not a directory" >&2
     exit 2
@@ -175,9 +179,4 @@ echo "      $skipped skipped"
 echo "      $missing missing"
 echo '------------------------------------------------------------'
 
-if test "$failed" -gt 0 || test "$missing" -gt 0
-then
-    exit 1
-else
-    exit 0
-fi
+exit `expr $failed + $missing`