diff --git a/tests/run-tests b/tests/run-tests new file mode 100755 --- /dev/null +++ b/tests/run-tests @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e + +tests=0 +failed=0 +H=$PWD + +for f in `ls test-* | grep -Ev "\.|~"` ; do + echo -n "." + D=`mktemp -d` + if [ "$D" == "" ] ; then + echo mktemp failed! + fi + + 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 + echo $f output changed: + diff -u $H/$f.out .out && true + cp .out $H/$f.err + fi + + cd $H + rm -r $D + + failed=$[$failed + $fail] + tests=$[$tests + 1] +done + +echo +echo Ran $tests tests, $failed failed + +if [ $failed -gt 0 ] ; then + exit 1 +fi +