diff tests/run-tests @ 362:410373162036

run-tests: run tests given on the command line -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 run-tests: run tests given on the command line manifest hash: e0217e478de902d0de7b9a294509718365f1d837 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCsL7EywK+sNU5EO8RAiGJAJ92ZB/+N8+XnOt717cuADK9ajQ+lwCfW1LG 02mjQ04uoS0n+D8xi0KX9tM= =d1lZ -----END PGP SIGNATURE-----
author mpm@selenic.com
date Wed, 15 Jun 2005 15:50:28 -0800
parents b4e0e20646bb
children 37249c522770
line wrap: on
line diff
--- a/tests/run-tests	Wed Jun 15 15:49:20 2005 -0800
+++ b/tests/run-tests	Wed Jun 15 15:50:28 2005 -0800
@@ -6,8 +6,8 @@
 failed=0
 H=$PWD
 
-for f in `ls test-* | grep -Ev "\.|~"` ; do
-    echo -n "."
+function run_one
+{
     D=`mktemp -d`
     if [ "$D" == "" ] ; then
 	echo mktemp failed!
@@ -15,16 +15,18 @@
 
     cd $D
     fail=0
+
     if ! $H/$f > .out 2>&1 ; then
 	echo $f failed with error code $?
 	fail=1
     fi
+
     if [ -s .out -a ! -r $H/$f.out ] ; then
 	echo $f generated unexpected output:
 	cat .out
 	cp .out $H/$f.err
 	fail=1
-    elif ! diff -u $H/$f.out .out > /dev/null ; then
+    elif [ -r $H/$f.out ] && ! diff -u $H/$f.out .out > /dev/null ; then
 	echo $f output changed:
 	diff -u $H/$f.out .out && true
 	cp .out $H/$f.err
@@ -33,8 +35,19 @@
 
     cd $H
     rm -r $D
+    return $fail
+}
 
-    failed=$[$failed + $fail]
+TESTS=$@
+if [ "$TESTS" == "" ] ; then
+    TESTS=`ls test-* | grep -Ev "\.|~"`
+fi
+
+for f in $TESTS ; do
+    echo -n "."
+    if ! run_one $f ; then
+	failed=$[$failed + 1]
+    fi
     tests=$[$tests + 1]
 done