]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tests/TESTrun.sh
Fix the pointer tests in the non-ndoified TTEST2() macro as well.
[tcpdump] / tests / TESTrun.sh
index 656974dd7c7fb6f878b0b81f35073ff6d18e12ba..924e5f5e53b37b864f36cc015d8988a2d08f1ca6 100755 (executable)
@@ -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