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
|