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.
(This used to be commit de9687404e802d7e7629c9d03f496d3c5bd30397)

source4/script/tests/test_win.sh
source4/script/tests/tests_win.sh
source4/script/tests/win/wintest_2k3_dc.sh
source4/script/tests/win/wintest_base.sh
source4/script/tests/win/wintest_client.sh
source4/script/tests/win/wintest_net.sh
source4/script/tests/win/wintest_raw.sh
source4/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