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