# HG changeset patch # User mpm@selenic.com # Date 2005-06-15 23:50:28 # Node ID 41037316203623df8b97ea094e92a9e9046b284f # Parent 88268aa2b8d231e7510f4a14fc6ea592929a80a7 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----- diff --git a/tests/run-tests b/tests/run-tests --- a/tests/run-tests +++ b/tests/run-tests @@ -6,8 +6,8 @@ tests=0 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 @@ for f in `ls test-* | grep -Ev "\.|~"` ; 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 @@ for f in `ls test-* | grep -Ev "\.|~"` ; 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