equal
deleted
inserted
replaced
|
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 |