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