2005-06-15 01:28:42 +04:00
|
|
|
#!/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
|
2005-06-15 12:02:13 +04:00
|
|
|
fail=1
|
2005-06-15 01:28:42 +04:00
|
|
|
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
|
|
|
|
|