X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/c51a2d7a9a66ea0398e29473ed8019ea37423c7b..refs/heads/tcpdump-4.6:/tests/TESTrun.sh diff --git a/tests/TESTrun.sh b/tests/TESTrun.sh index 656974dd..924e5f5e 100755 --- a/tests/TESTrun.sh +++ b/tests/TESTrun.sh @@ -4,60 +4,68 @@ mkdir -p NEW mkdir -p DIFF 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 +runComplexTests() +{ + for i in *.sh + do + case $i in TEST*.sh) continue;; esac + if sh ./$i + then + passed=`expr $passed + 1` + else + failed=`expr $failed + 1` + fi + done +} - if sh ./$i >DIFF/$i.result - then - echo $i: passed. - rm -f DIFF/$i.result - passed=$(($passed + 1)) - else - echo $i: failed. - failed=$(($failed + 1)) - fi -done - -echo $passed >.passed -echo $failed >.failed - -# 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 - passed=$(($passed + 1)) + esac + [ "$only" != "" -a "$name" != "$only" ] && continue + if ./TESTonce $name $input $output "$options" + then + passed=`expr $passed + 1` echo $passed >.passed - else - echo $name: failed. - failed=$(($failed + 1)) + else + failed=`expr $failed + 1` echo $failed >.failed - 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 echo -exit $failed - - - - +cat failure-outputs.txt +echo +echo +exit $failed