X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/0199f50d39f9e027c6c537a942c8d4ed1c734c9c..refs/heads/tcpdump-4.6:/tests/TESTrun.sh diff --git a/tests/TESTrun.sh b/tests/TESTrun.sh index d1baaa7b..924e5f5e 100755 --- a/tests/TESTrun.sh +++ b/tests/TESTrun.sh @@ -6,57 +6,61 @@ passed=0 failed=0 cat /dev/null > failure-outputs.txt -# first run any specific tests. -for i in *.sh -do - case $i in TEST*.sh) continue;; esac - - if sh ./$i >DIFF/$i.result - then - echo $i: passed. - rm -f DIFF/$i.result +runComplexTests() +{ + for i in *.sh + do + case $i in TEST*.sh) continue;; esac + if sh ./$i + then passed=`expr $passed + 1` - else - echo $i: failed. + else failed=`expr $failed + 1` - fi -done - -echo $passed >.passed -echo $failed >.failed + fi + done +} -# now run typical tests -cat TESTLIST | while read name input output options -do - case $name in +runSimpleTests() +{ + only=$1 + echo $passed >.passed + echo $failed >.failed + cat TESTLIST | while read name input output options + do + case $name in \#*) continue;; '') continue;; - esac - - if ./TESTonce $name $input $output "$options" - then - echo $name: passed. - rm -f DIFF/$output.diff + esac + [ "$only" != "" -a "$name" != "$only" ] && continue + if ./TESTonce $name $input $output "$options" + then passed=`expr $passed + 1` echo $passed >.passed - else - echo $name: failed. + else failed=`expr $failed + 1` echo $failed >.failed - echo "Failed test: $name" >> failure-outputs.txt - echo >> failure-outputs.txt - cat DIFF/$output.diff >> failure-outputs.txt - echo >> failure-outputs.txt - fi -done + fi + [ "$only" != "" -a "$name" = "$only" ] && break + done + # I hate shells with their stupid, useless subshells. + passed=`cat .passed` + failed=`cat .failed` +} -# I hate shells with their stupid, useless subshells. -passed=`cat .passed` -failed=`cat .failed` +if [ $# -eq 0 ] +then + runComplexTests + runSimpleTests +elif [ $# -eq 1 ] +then + runSimpleTests $1 +else + echo "Usage: $0 [test_name]" + exit 30 +fi # exit with number of failing tests. -echo -echo +echo '------------------------------------------------' printf "%4u tests failed\n" $failed printf "%4u tests passed\n" $passed echo @@ -64,8 +68,4 @@ echo cat failure-outputs.txt echo echo -exit $failed - - - - +exit $failed