331
|
1 |
#!/bin/bash
|
|
2 |
|
|
3 |
set -e
|
|
4 |
|
|
5 |
tests=0
|
|
6 |
failed=0
|
|
7 |
H=$PWD
|
|
8 |
|
|
9 |
for f in `ls test-* | grep -Ev "\.|~"` ; do
|
|
10 |
echo -n "."
|
|
11 |
D=`mktemp -d`
|
|
12 |
if [ "$D" == "" ] ; then
|
|
13 |
echo mktemp failed!
|
|
14 |
fi
|
|
15 |
|
|
16 |
cd $D
|
|
17 |
fail=0
|
|
18 |
if ! $H/$f > .out 2>&1 ; then
|
|
19 |
echo $f failed with error code $?
|
|
20 |
fail=1
|
|
21 |
fi
|
|
22 |
if [ -s .out -a ! -r $H/$f.out ] ; then
|
|
23 |
echo $f generated unexpected output:
|
|
24 |
cat .out
|
|
25 |
cp .out $H/$f.err
|
|
26 |
fail=1
|
|
27 |
elif ! diff -u $H/$f.out .out > /dev/null ; then
|
|
28 |
echo $f output changed:
|
|
29 |
diff -u $H/$f.out .out && true
|
|
30 |
cp .out $H/$f.err
|
|
31 |
fi
|
|
32 |
|
|
33 |
cd $H
|
|
34 |
rm -r $D
|
|
35 |
|
|
36 |
failed=$[$failed + $fail]
|
|
37 |
tests=$[$tests + 1]
|
|
38 |
done
|
|
39 |
|
|
40 |
echo
|
|
41 |
echo Ran $tests tests, $failed failed
|
|
42 |
|
|
43 |
if [ $failed -gt 0 ] ; then
|
|
44 |
exit 1
|
|
45 |
fi
|
|
46 |
|