]> The Tcpdump Group git mirrors - tcpdump/blob - tests/TESTrun.sh
make check needs to work in build directories
[tcpdump] / tests / TESTrun.sh
1 #!/bin/sh
2
3 TZ=GMT0; export TZ
4 srcdir=${SRCDIR-..}
5
6 echo RUNNING from ${srcdir}
7
8 mkdir -p NEW
9 mkdir -p DIFF
10 cat /dev/null > failure-outputs.txt
11
12 runComplexTests()
13 {
14 for i in ${srcdir}/*.sh
15 do
16 case $i in ${srcdir}/TEST*.sh) continue;; esac
17 sh ./$i ${srcdir}
18 done
19 passed=`cat .passed`
20 failed=`cat .failed`
21 }
22
23 runSimpleTests()
24 {
25 only=$1
26 cat ${srcdir}/tests/TESTLIST | while read name input output options
27 do
28 case $name in
29 \#*) continue;;
30 '') continue;;
31 esac
32 rm -f core
33 [ "$only" != "" -a "$name" != "$only" ] && continue
34 export SRCDIR=${srcdir}
35 if ${srcdir}/tests/TESTonce $name ${srcdir}/tests/$input ${srcdir}/tests/$output "$options"
36 then
37 passed=`expr $passed + 1`
38 echo $passed >.passed
39 else
40 failed=`expr $failed + 1`
41 echo $failed >.failed
42 fi
43 [ "$only" != "" -a "$name" = "$only" ] && break
44 done
45 # I hate shells with their stupid, useless subshells.
46 passed=`cat .passed`
47 failed=`cat .failed`
48 }
49
50 passed=0
51 failed=0
52 echo $passed >.passed
53 echo $failed >.failed
54 if [ $# -eq 0 ]
55 then
56 runComplexTests
57 runSimpleTests
58 elif [ $# -eq 1 ]
59 then
60 runSimpleTests $1
61 else
62 echo "Usage: $0 [test_name]"
63 exit 30
64 fi
65
66 # exit with number of failing tests.
67 echo '------------------------------------------------'
68 printf "%4u tests failed\n" $failed
69 printf "%4u tests passed\n" $passed
70 echo
71 cat failure-outputs.txt
72 echo
73 echo
74 exit $failed