Make preparations for running under Buildbot:
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 9 Oct 2006 18:47:42 +0000 (18:47 +0000)
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 9 Oct 2006 18:47:42 +0000 (18:47 +0000)
  - Check for an "all" argument at startup.  If it's present,
    then proceed with testing.

  - Add a platform check.  Use it to handle cases where we can't run
    as a normal user, e.g. trying to capture under Linux.

  - Add a "Skipped" result.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@19461 f5534014-38df-0310-8fa8-9805f1628bb7

test/config.sh
test/suite-capture.sh
test/suite-clopts.sh
test/test-backend.sh
test/test.sh

index 3ee935c07b2405b36bdc152ebf59cbe3f6f3792d..e3fd1003f5333ae8e112f27d93aaadf365feb1e5 100644 (file)
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-# 
+#
+
+# Set WS_SYSTEM to our system type, e.g. Windows, Linux, Darwin
+# http://support.microsoft.com/kb/100843
+if [ -n "${OS#Windows}" ] ; then
+       WS_SYSTEM="Windows"
+else
+       WS_SYSTEM=`uname -s`
+fi
 
 # path to the Wireshark binaries, only used for the settings below
-ETH_BIN_PATH=../wireshark-gtk2
+if [ "$WS_SYSTEM" = "Windows" ] ; then
+       WS_BIN_PATH=../wireshark-gtk2
+else
+       WS_BIN_PATH=..
+fi
 
 # Tweak the following to your liking.
-WIRESHARK=$ETH_BIN_PATH/wireshark
-TSHARK=$ETH_BIN_PATH/tshark
-CAPINFOS=$ETH_BIN_PATH/capinfos
-DUMPCAP=$ETH_BIN_PATH/dumpcap
+WIRESHARK=$WS_BIN_PATH/wireshark
+TSHARK=$WS_BIN_PATH/tshark
+CAPINFOS=$WS_BIN_PATH/capinfos
+DUMPCAP=$WS_BIN_PATH/dumpcap
 
 # interface with at least a few packets/sec traffic on it
 # (e.g. start a web radio to generate some traffic :-)
index 2850760015d50bfffbbb65ad03c99ff2a27a2a3c..454e62055cda3518b97268f996aad0a509651aa3 100644 (file)
@@ -21,7 +21,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-# 
+#
 
 
 # common exit status values
@@ -32,6 +32,11 @@ EXIT_ERROR=2
 
 # capture exactly 10 packets
 capture_step_10packets() {
+        if [ "$WS_SYSTEM" != "Windows" ] ; then
+                test_step_skipped
+                return
+        fi
+
        $DUT -i $TRAFFIC_CAPTURE_IFACE $TRAFFIC_CAPTURE_PROMISC -w ./testout.pcap -c 10  -a duration:$TRAFFIC_CAPTURE_DURATION > ./testout.txt 2>&1
        RETURNVALUE=$?
        if [ ! $RETURNVALUE -eq $EXIT_OK ]; then
@@ -47,7 +52,7 @@ capture_step_10packets() {
                test_step_failed "No output file!"
                return
        fi
-       
+
        # ok, we got a capture file, does it contain exactly 10 packets?
        $CAPINFOS ./testout.pcap > ./testout.txt
        grep -i 'Number of packets: 10' ./testout.txt > /dev/null
@@ -65,6 +70,11 @@ capture_step_10packets() {
 
 # capture exactly 10 packets using "-w -" (piping to stdout)
 capture_step_10packets_stdout() {
+        if [ "$WS_SYSTEM" != "Windows" ] ; then
+                test_step_skipped
+                return
+        fi
+
        $DUT -i $TRAFFIC_CAPTURE_IFACE $TRAFFIC_CAPTURE_PROMISC -c 10 -a duration:$TRAFFIC_CAPTURE_DURATION -w - > ./testout.pcap 2>./testout.txt
        RETURNVALUE=$?
        if [ ! $RETURNVALUE -eq $EXIT_OK ]; then
@@ -78,7 +88,7 @@ capture_step_10packets_stdout() {
                test_step_failed "No output file!"
                return
        fi
-       
+
        # ok, we got a capture file, does it contain exactly 10 packets?
        $CAPINFOS ./testout.pcap > ./testout2.txt 2>&1
        grep -i 'Number of packets: 10' ./testout2.txt > /dev/null
@@ -110,7 +120,7 @@ capture_step_fifo() {
                test_step_failed "No output file!"
                return
        fi
-       
+
        # ok, we got a capture file, does it contain exactly 8 packets?
        $CAPINFOS ./testout.pcap > ./testout.txt
        grep -i 'Number of packets: 8' ./testout.txt > /dev/null
@@ -121,10 +131,15 @@ capture_step_fifo() {
                cat ./testout.txt
                test_step_failed "No or not enough traffic captured."
        fi
-}    
+}
 
 # capture exactly 2 times 10 packets (multiple files)
 capture_step_2multi_10packets() {
+        if [ "$WS_SYSTEM" != "Windows" ] ; then
+                test_step_skipped
+                return
+        fi
+
        $DUT -i $TRAFFIC_CAPTURE_IFACE $TRAFFIC_CAPTURE_PROMISC -w ./testout.pcap -c 10  -a duration:$TRAFFIC_CAPTURE_DURATION > ./testout.txt 2>&1
        RETURNVALUE=$?
        if [ ! $RETURNVALUE -eq $EXIT_OK ]; then
@@ -140,7 +155,7 @@ capture_step_2multi_10packets() {
                test_step_failed "No output file!"
                return
        fi
-       
+
        # ok, we got a capture file, does it contain exactly 10 packets?
        $CAPINFOS ./testout.pcap > ./testout.txt
        grep -i 'Number of packets: 10' ./testout.txt > /dev/null
@@ -155,6 +170,11 @@ capture_step_2multi_10packets() {
 
 # capture with a very unlikely read filter, packets must be zero afterwards
 capture_step_read_filter() {
+        if [ "$WS_SYSTEM" != "Windows" ] ; then
+                test_step_skipped
+                return
+        fi
+
        # valid, but very unlikely filter
        $DUT -i $TRAFFIC_CAPTURE_IFACE $TRAFFIC_CAPTURE_PROMISC -w ./testout.pcap -a duration:$TRAFFIC_CAPTURE_DURATION -R 'dcerpc.cn_call_id==123456' -c 10 > ./testout.txt 2>&1
        RETURNVALUE=$?
@@ -184,6 +204,11 @@ capture_step_read_filter() {
 
 # capture with a snapshot length
 capture_step_snapshot() {
+        if [ "$WS_SYSTEM" != "Windows" ] ; then
+                test_step_skipped
+                return
+        fi
+
        # capture with a snapshot length of 68 bytes for $TRAFFIC_CAPTURE_DURATION seconds
        # this should result in no packets
        $DUT -i $TRAFFIC_CAPTURE_IFACE $TRAFFIC_CAPTURE_PROMISC -w ./testout.pcap -s 68 -a duration:$TRAFFIC_CAPTURE_DURATION > ./testout.txt 2>&1
index 97554541ab2045bda53c15f946d9e675481a5e97..d1b37dfc0a48ea1ba83786b01b195fd8a10509d1 100644 (file)
@@ -21,8 +21,8 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-# 
+#
+
 # common exit status values
 EXIT_OK=0
 EXIT_COMMAND_LINE=1
@@ -84,17 +84,34 @@ clopts_suite_tshark_invalid_chars() {
 
 # check exit status of all single char option being valid
 clopts_suite_valid_chars() {
-       for index in D G L h v
+       for index in G h v
        do
          test_step_add "Valid TShark parameter -$index, exit status must be $EXIT_OK" "test_single_char_options $TSHARK $index $EXIT_OK"
        done
 }
 
+# special case: interface-specific opts should work under Windows and fail as
+# a regular user on other systems.
+clopts_suite_interface_chars() {
+       for index in D L
+       do
+          if [ "$WS_SYSTEM" = "Windows" ] ; then
+           test_step_add "Valid TShark parameter -$index, exit status must be $EXIT_OK" "test_single_char_options $TSHARK $index $EXIT_OK"
+          else
+           test_step_add "Invalid permissions for TShark parameter -$index, exit status must be $EXIT_ERROR" "test_single_char_options $TSHARK $index $EXIT_ERROR"
+          fi
+        done
+}
 
 # S V l n p q x
 
 # check exit status and grep output string of an invalid capture filter
 clopts_step_invalid_capfilter() {
+        if [ "$WS_SYSTEM" != "Windows" ] ; then
+                test_step_skipped
+                return
+        fi
+
        $TSHARK -f 'jkghg' -w './testout.pcap' > ./testout.txt 2>&1
        RETURNVALUE=$?
        if [ ! $RETURNVALUE -eq $EXIT_OK ]; then
@@ -148,6 +165,11 @@ clopts_step_invalid_interface_index() {
 # check exit status and grep output string of an invalid capture filter
 # XXX - how to efficiently test the *invalid* flags?
 clopts_step_valid_name_resolving() {
+        if [ "$WS_SYSTEM" != "Windows" ] ; then
+                test_step_skipped
+                return
+        fi
+
        $TSHARK -N mntC -a duration:1 > ./testout.txt 2>&1
        RETURNVALUE=$?
        if [ ! $RETURNVALUE -eq $EXIT_OK ]; then
@@ -173,6 +195,7 @@ clopt_suite() {
        test_suite_add "Basic tests" clopts_suite_basic
        test_suite_add "Invalid TShark single char options" clopts_suite_tshark_invalid_chars
        test_suite_add "Valid TShark single char options" clopts_suite_valid_chars
+       test_suite_add "Interface-specific TShark single char options" clopts_suite_interface_chars
        test_step_add  "Invalid capture filter -f" clopts_step_invalid_capfilter
        test_step_add  "Invalid capture interface -i" clopts_step_invalid_interface
        test_step_add  "Invalid capture interface index 0" clopts_step_invalid_interface_index
index e70511de106a73bfbaf3986c72448bb102ddb0e6..384d4f42ad01bd043bbe471ad728cfbe2e339c76 100644 (file)
@@ -21,7 +21,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-# 
+#
 
 
 # References:
@@ -39,6 +39,7 @@
 color_reset="tput sgr0"
 color_green='\E[32;40m'
 color_red='\E[31;40m'
+color_yellow='\E[33;40m'
 color_blue='\E[36;40m'
 
 # runtime flags
@@ -52,6 +53,7 @@ TEST_STEPS[0]=0                       # number of steps of a specific nesting level
 # output counters
 TEST_OK=0                              # global count of succeeded steps
 TEST_FAILED=0                  # global count of failed steps
+TEST_SKIPPED=0                 # global count of failed steps
 
 TEST_STEP_PRE_CB=
 TEST_STEP_POST_CB=
@@ -59,8 +61,8 @@ TEST_STEP_POST_CB=
 # level number of this test item (suite or step)
 test_level() {
        LIMIT_LEVEL=100
-       
-       for ((a=0; a <= LIMIT_LEVEL ; a++)) 
+
+       for ((a=0; a <= LIMIT_LEVEL ; a++))
        do
                if [ ! $a -eq 0 ]; then
                        echo -n "."
@@ -70,7 +72,7 @@ test_level() {
                        #echo "end"
                        return
                fi
-       done                           
+       done
 }
 
 # set output format
@@ -93,7 +95,7 @@ test_suite_run() {
 
        # run the actual test suite
        $2
-       
+
        # results
        if [ $TEST_RUN = "ON" ]; then
                echo ""
@@ -107,6 +109,8 @@ test_suite_run() {
                echo "Ok    : $TEST_OK"
                echo -n -e $color_red
                echo "Failed: $TEST_FAILED"
+               echo -n -e $color_yellow
+               echo "Skipped: $TEST_SKIPPED"
                $color_reset
        fi
 
@@ -137,7 +141,7 @@ test_suite_show() {
 
        # show this test suite subitems
        $2
-       
+
        echo ""
 }
 
@@ -148,12 +152,12 @@ test_suite_show() {
 test_suite_add() {
        # increase step counter of this nesting level
        let "TEST_STEPS[$TEST_NESTING_LEVEL] += 1"
-       
+
        if [ $TEST_RUN = "ON" ]; then
                echo ""
        fi
-       
-       # title output if we'll list the subitems 
+
+       # title output if we'll list the subitems
        if [[ $TEST_RUN = "ON" ]]; then
                echo -n -e $color_blue
                test_level
@@ -172,7 +176,7 @@ test_suite_add() {
 
        # reset test step counter back to zero
        TEST_STEP=0
-       
+
        # call the suites function
        let "TEST_NESTING_LEVEL += 1"
        TEST_STEPS[$TEST_NESTING_LEVEL]=0
@@ -185,7 +189,7 @@ test_suite_add() {
                test_level
                echo "  Suite: $1 (${TEST_STEPS[TEST_NESTING_LEVEL+1]} subitems)"
                $color_reset
-       fi      
+       fi
 
 }
 
@@ -200,7 +204,7 @@ test_step_add() {
        if [[ ($TEST_RUN = "ON" && $TEST_OUTPUT = "DOTTED") && $TEST_NESTING_LEVEL -eq 0 ]]; then
                echo ""
        fi
-       
+
        if [[ ( $TEST_RUN = "ON" && $TEST_OUTPUT = "VERBOSE" ) || $TEST_NESTING_LEVEL -eq 0 ]]; then
                echo -n -e $color_blue
                test_level
@@ -208,13 +212,13 @@ test_step_add() {
                $color_reset
        fi
 
-       if [ $TEST_RUN = "ON" ]; then           
+       if [ $TEST_RUN = "ON" ]; then
                # preprecessing step
                $TEST_STEP_PRE_CB
                #echo "command: "$2" opt1: "$3" opt2: "$4" opt3: "$5" opt4: "$6" opt5: "$7
                TEST_STEP_NAME=$1
                # actually run the command to test now
-               $2 
+               $2
                #"$3" "$4" "$5" "$6" "$7"
                # post precessing step
                $TEST_STEP_POST_CB
@@ -248,7 +252,7 @@ test_remark_add() {
                if [[ $TEST_RUN = "ON" && $TEST_OUTPUT = "DOTTED" ]]; then
                        echo ""
                fi
-               
+
                # remark
                echo -n -e $color_blue
                echo "  Remark: $1"
@@ -261,16 +265,16 @@ test_remark_add() {
 test_step_ok() {
        # count appearance
        let "TEST_OK += 1"
-       
+
        # output in green
        echo -n -e $color_green
-       
+
        if [ $TEST_OUTPUT = "VERBOSE" ]; then
                echo " Ok"
        else
                echo -n .
        fi
-       
+
        $color_reset
 }
 
@@ -278,18 +282,35 @@ test_step_ok() {
 # $1 output text
 test_step_failed() {
        let "TEST_FAILED += 1"
-       
+
        # output in red
        echo -n -e "$color_red"
-       
+
        echo ""
        echo "\"$TEST_STEP_NAME\" Failed!"
        echo $1
-       
+
        $color_reset
-       
+
        exit 1
-       
+
        # XXX - add a mechanism to optionally stop here
 }
 
+# the test step succeeded
+test_step_skipped() {
+       # count appearance
+       let "TEST_SKIPPED += 1"
+
+       # output in green
+       echo -n -e $color_yellow
+
+       if [ $TEST_OUTPUT = "VERBOSE" ]; then
+               echo " Skipped"
+       else
+               echo -n .
+       fi
+
+       $color_reset
+}
+
index c31dba8662d0c0293e92be5b1da91010dfd9595c..c69b59cf22067ea85dfc0c04b1991a20e02f2189 100644 (file)
@@ -21,7 +21,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-# 
+#
 
 # an existing capture file
 CAPFILE=./dhcp.pcap
@@ -44,7 +44,7 @@ test_step_prerequisites() {
                        echo "Couldn't find $i"
                        NOTFOUND=1
                fi
-       done 
+       done
        if [ $NOTFOUND -eq 1 ]; then
                test_step_failed "Tool not found"
                exit 1
@@ -79,6 +79,11 @@ test_set_output VERBOSE
 #test_suite_run "All" test_suite
 #test_suite_show "All" test_suite
 
+if [ "$1" == "all" ] ; then
+        test_suite_run "All" test_suite
+        exit
+fi
+
 MENU_LEVEL=0
 
 menu_title[0]="All"
@@ -86,10 +91,10 @@ menu_function[0]=test_suite
 
 echo "----------------------------------------------------------------------"
 
-for ((a=0; a <= 100000000000 ; a++)) 
+for ((a=0; a <= 100000000000 ; a++))
 do
        TEST_STEPS[0]=0                 # number of steps of a specific nesting level
-       
+
        #echo $current_title $current_function
        test_suite_show "${menu_title[MENU_LEVEL]}" "${menu_function[MENU_LEVEL]}"
        echo "1-$TEST_STEPS  : Select item"