r21494: Fix 'make wintest' to support command-line changes to 'vm-get-ip.pl' and...
authorBrad Henry <brad@samba.org>
Wed, 21 Feb 2007 22:50:55 +0000 (22:50 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:48:44 +0000 (14:48 -0500)
Restructure existing tests to work with the recent build farm changes.
Added windows DC testing to 'make wintest'.
Some improvements and generalization to the way errors are handled.

source/script/tests/test_win.sh
source/script/tests/tests_win.sh
source/script/tests/win/wintest_2k3_dc.sh
source/script/tests/win/wintest_base.sh
source/script/tests/win/wintest_client.sh
source/script/tests/win/wintest_net.sh
source/script/tests/win/wintest_raw.sh
source/script/tests/win/wintest_rpc.sh

index 015ee459fc86ac5aa72c3f5f6e71840831dea21e..577282b3ae826d607df1b774548561837e1db8aa 100755 (executable)
@@ -7,30 +7,36 @@
 # Copyright Brad Henry <brad@samba.org> 2006
 # Released under the GNU GPL v2 or later.
 
-# Index variable to count the total number of tests which fail.
-all_errs=0
+. script/tests/test_functions.sh
 
-export SMBTORTURE_REMOTE_HOST=`perl -I$WINTEST_DIR $WINTEST_DIR/vm_get_ip.pl`
+export SMBTORTURE_REMOTE_HOST=`perl -I$WINTEST_DIR $WINTEST_DIR/vm_get_ip.pl VM_CFG_PATH`
 if [ -z $SMBTORTURE_REMOTE_HOST ]; then
        # Restore snapshot to ensure VM is in a known state, then exit.
-       restore_snapshot "Test failed to get the IP address of the windows host."
+       restore_snapshot "Test failed to get the IP address of the windows host." "$VM_CFG_PATH"
        exit 1
 fi
 
-$WINTEST_DIR/wintest_base.sh $SMBTORTURE_REMOTE_HOST $SMBTORTURE_USERNAME \
-       $SMBTORTURE_PASSWORD $SMBTORTURE_WORKGROUP \
-       || all_errs=`expr $all_errs + $?`
+name="BASE against Windows 2003"
+testit "$name" $WINTEST_DIR/wintest_base.sh $SMBTORTURE_REMOTE_HOST \
+       $SMBTORTURE_USERNAME $SMBTORTURE_PASSWORD $SMBTORTURE_WORKGROUP
 
-$WINTEST_DIR/wintest_raw.sh $SMBTORTURE_REMOTE_HOST $SMBTORTURE_USERNAME \
-       $SMBTORTURE_PASSWORD $SMBTORTURE_WORKGROUP \
-       || all_errs=`expr $all_errs + $?`
+name="RAW against Windows 2003"
+testit "$name" $WINTEST_DIR/wintest_raw.sh $SMBTORTURE_REMOTE_HOST \
+       $SMBTORTURE_USERNAME $SMBTORTURE_PASSWORD $SMBTORTURE_WORKGROUP
 
-$WINTEST_DIR/wintest_rpc.sh $SMBTORTURE_REMOTE_HOST $SMBTORTURE_USERNAME \
-       $SMBTORTURE_PASSWORD $SMBTORTURE_WORKGROUP \
-       || all_errs=`expr $all_errs + $?`
+name="RPC against Windows 2003"
+testit "$name" $WINTEST_DIR/wintest_rpc.sh $SMBTORTURE_REMOTE_HOST \
+       $SMBTORTURE_USERNAME $SMBTORTURE_PASSWORD $SMBTORTURE_WORKGROUP
 
-$WINTEST_DIR/wintest_net.sh $SMBTORTURE_REMOTE_HOST $SMBTORTURE_USERNAME \
-       $SMBTORTURE_PASSWORD $SMBTORTURE_WORKGROUP \
-       || all_errs=`expr $all_errs + $?`
+name="NET against Windows 2003"
+testit "$name" $WINTEST_DIR/wintest_net.sh $SMBTORTURE_REMOTE_HOST \
+       $SMBTORTURE_USERNAME $SMBTORTURE_PASSWORD $SMBTORTURE_WORKGROUP
 
-$WINTEST_DIR/wintest_client.sh || all_errs=`expr $all_errs + $?`
+name="Windows 2003 against smbd"
+testit "$name" $WINTEST_DIR/wintest_client.sh $SMBTORTURE_REMOTE_HOST
+
+dc_tests="RPC-DRSUAPI RPC-SPOOLSS ncacn_np ncacn_ip_tcp"
+for name in $dc_tests; do
+       testit "$name against Windows 2003 DC" $WINTEST_DIR/wintest_2k3_dc.sh \
+               "$name"
+done
index 5c3c81b1eb6332e9fdc5fb9ca43be0a27f5f744c..b885056ace911645365f9641fcd42e5c83f7f4e4 100755 (executable)
@@ -28,7 +28,3 @@
  . $WINTESTCONF
 
  $SRCDIR/script/tests/test_win.sh
- status=$?
-
- echo "$0 exits with status $status"
- exit $status
index 7949dc4b9aca45c0e4c575c4c2c0e1c648ec9589..ee69a9834a4aaace6daa46c0d0da223350eac920 100755 (executable)
@@ -9,13 +9,11 @@ fi
 
 TESTGROUP=$1
 
-if [ -z $SRCDIR ]; then
-       echo "Please point environment variable SRCDIR to the Samba 4 source tree."
+if [ -z $WINTEST_DIR ]; then
+       echo "Environment variable WINTEST_DIR not found."
        exit 1;
 fi
 
-WINTEST_DIR=$SRCDIR/script/tests/win
-
 # This variable is defined in the per-hosts .fns file for build-farm hosts that run windows tests.
 if [ -z $WINTESTCONF ]; then
        echo "Please point environment variable WINTESTCONF to your test_win.conf file."
index fa436a4af8f9ef552af584a1ba6da62a03ba9d96..b12d2923f73323c091fc859bf61ca636fea920d9 100755 (executable)
@@ -20,9 +20,19 @@ password="$3"
 domain="$4"
 shift 4
 
+export SMBTORTURE_REMOTE_HOST=$server
+
 base_tests="BASE-UNLINK BASE-ATTR BASE-DELETE BASE-TCON BASE-OPEN BASE-CHKPATH"
 
 all_errs=0
+err=0
+
+on_error() {
+       errstr=$1
+
+       all_errs=`expr $all_errs + 1`
+       restore_snapshot $errstr "$VM_CFG_PATH"
+}
 
 for t in $base_tests; do
        test_name="$t / WINDOWS SERVER"
@@ -32,23 +42,21 @@ for t in $base_tests; do
 
        if [ $err_rtn -ne 0 ]; then
                # If test setup fails, load VM snapshot and skip test.
-               restore_snapshot "\n$test_name setup failed, skipping test."
+               on_error "\n$test_name setup failed, skipping test."
        else
                echo -e "\n$test_name setup completed successfully."
-               old_errs=$all_errs
 
-               testit "$test_name" $SMBTORTURE_BIN_PATH \
-                       -U $username%$password \
+               $SMBTORTURE_BIN_PATH -U $username%$password \
                        -W $domain //$server/$SMBTORTURE_REMOTE_SHARE_NAME \
-                       $t || all_errs=`expr $all_errs + 1`
-               if [ $old_errs -lt $all_errs ]; then
-                       restore_snapshot "\n$test_name failed."
+                       $t || err=1
+               if [ $err -ne 0 ]; then
+                       on_error "\n$test_name failed."
                else
                        echo -e "\n$test_name CLEANUP PHASE"
                        remove_share_test
                        if [ $err_rtn -ne 0 ]; then
                                # If cleanup fails, restore VM snapshot.
-                               restore_snapshot "\n$test_name removal failed."
+                               on_error "\n$test_name removal failed."
                        else
                                echo -e "\n$test_name removal completed successfully."
                        fi
@@ -56,4 +64,4 @@ for t in $base_tests; do
        fi
 done
 
-testok $0 $all_errs
+exit $all_errs
index cd6427a0bd45e0eacf7b8622325c264b25e4a4dd..42fbc5c8052b59d30d49776166275c1e68fb835b 100755 (executable)
@@ -7,20 +7,20 @@
 # This variable is defined in the per-hosts .fns file.
 . $WINTESTCONF
 
+export SMBTORTURE_REMOTE_HOST=$1
+
 test_name="WINDOWS CLIENT / SAMBA SERVER SHARE"
 
 cat $WINTEST_DIR/common.exp > $TMPDIR/client_test.exp
 cat $WINTEST_DIR/wintest_client.exp >> $TMPDIR/client_test.exp
 
-testit "$test_name" \
-       expect $TMPDIR/client_test.exp || all_errs=`expr $all_errs + 1`
+expect $TMPDIR/client_test.exp || all_errs=`expr $all_errs + 1`
 
 if [ $all_errs > 0 ]; then
        # Restore snapshot to ensure VM is in a known state.
-       restore_snapshot "\n$test_name failed."
-       echo "Snapshot restored."
+       restore_snapshot "\n$test_name failed." "$VM_CFG_PATH"
 fi
 
 rm -f $TMPDIR/client_test.exp
 
-testok $0 $all_errs
+exit $all_errs
index d2dbb3bcc05fc0dec8b4b5923cbe800730b7085b..cd1fd2de92ef366a2f40377378d867145e3fac44 100755 (executable)
@@ -34,6 +34,14 @@ bind_options="seal,padcheck bigendian"
 test_type="ncalrpc ncacn_np ncacn_ip_tcp"
 
 all_errs=0
+
+on_error() { 
+       errstr=$1
+
+       all_errs=`expr $all_errs + 1`
+       restore_snapshot $errstr "$VM_CFG_PATH"
+}
+
 for o in $bind_options; do
        for transport in $test_type; do
                case $transport in
@@ -49,12 +57,9 @@ for o in $bind_options; do
                                -U $username%$password \
                                -W $domain \
                                $transport:$server[$o] \
-                               $t || all_errs=`expr $all_errs + 1`
-                       if [ $old_errs -lt $all_errs ]; then
-                               restore_snapshot "\n$test_name failed."
-                       fi
+                               $t || on_error "\n$test_name failed."
                done
        done
 done
 
-testok $0 $all_errs
+exit $all_errs
index 2459b21d6d2648b4a654f222b9f21edb86fb7281..f974dc8770e630eabc9cd776faa38f1255c81b0a 100755 (executable)
@@ -20,10 +20,20 @@ password="$3"
 domain="$4"
 shift 4
 
+export SMBTORTURE_REMOTE_HOST=$server
+
 raw_tests="RAW-QFILEINFO RAW-SFILEINFO RAW-MKDIR RAW-SEEK RAW-OPEN RAW-WRITE RAW-UNLINK RAW-READ RAW-CLOSE RAW-IOCTL RAW-RENAME RAW-EAS RAW-STREAMS"
 # This test fails: RAW-QFSINFO
 
 all_errs=0
+err=0
+
+on_error() {
+       errstr=$1
+       all_errs=`expr $all_errs + 1`
+
+       restore_snapshot $errstr "$VM_CFG_PATH"
+}
 
 for t in $raw_tests; do
        test_name="$t / WINDOWS SERVER"
@@ -33,17 +43,15 @@ for t in $raw_tests; do
 
        if [ $err_rtn -ne 0 ]; then
                # If test setup fails, load VM snapshot and skip test.
-               restore_snapshot "\n$test_name setup failed, skipping test."
+               on_error "\n$test_name setup failed, skipping test."
        else
                echo -e "\n$test_name setup completed successfully."
-               old_errs=$all_errs
-
-               testit "$test_name" $SMBTORTURE_BIN_PATH \
-                       -U $username%$password \
-                       -W $domain //$server/$SMBTORTURE_REMOTE_SHARE_NAME \
-                       $t || all_errs=`expr $all_errs + 1`
-               if [ $old_errs -lt $all_errs ]; then
-                       restore_snapshot "\n$test_name failed."
+
+               $SMBTORTURE_BIN_PATH -U $username%$password -W $domain \
+                       //$server/$SMBTORTURE_REMOTE_SHARE_NAME \
+                       $t || err=1
+               if [ $err -ne 0 ]; then
+                       on_error "\n$test_name failed."
                else
                        echo -e "\n$test_name CLEANUP PHASE"
                        remove_share_test
@@ -57,4 +65,4 @@ for t in $raw_tests; do
        fi
 done
 
-testok $0 $all_errs
+exit $all_errs
index 40a981e56d9ac3e65d73e2479244804e536cc692..34c195b07463da0d014194c7ec0d36e2e1949cc4 100755 (executable)
@@ -37,6 +37,14 @@ bind_options="seal,padcheck bigendian"
 test_type="ncalrpc ncacn_np ncacn_ip_tcp"
 
 all_errs=0
+
+on_error() {
+       errstr=$1
+       all_errs=`expr $all_errs + 1`
+
+       restore_snapshot $errstr "$VM_CFG_PATH"
+}
+
 for o in $bind_options; do
        for transport in $test_type; do
                case $transport in
@@ -47,17 +55,12 @@ for o in $bind_options; do
 
                for t in $rpc_test; do
                        test_name="$t on $transport with $o"
-                       old_errs=$all_errs
-                       testit "$test_name" $SMBTORTURE_BIN_PATH \
-                               -U $username%$password \
-                               -W $domain \
-                               $transport:$server[$o] \
-                               $t || all_errs=`expr $all_errs + 1`
-                       if [ $old_errs -lt $all_errs ]; then
-                               restore_snapshot "\n$test_name failed."
-                       fi
+
+                       $SMBTORTURE_BIN_PATH -U $username%$password \
+                               -W $domain $transport:$server[$o] \
+                               $t || on_error "\n$test_name failed."
                done
        done
 done
 
-testok $0 $all_errs
+exit $all_errs