diff options
-rwxr-xr-x | source4/script/tests/test_win.sh | 40 | ||||
-rwxr-xr-x | source4/script/tests/tests_win.sh | 4 | ||||
-rwxr-xr-x | source4/script/tests/win/wintest_2k3_dc.sh | 6 | ||||
-rwxr-xr-x | source4/script/tests/win/wintest_base.sh | 26 | ||||
-rwxr-xr-x | source4/script/tests/win/wintest_client.sh | 10 | ||||
-rwxr-xr-x | source4/script/tests/win/wintest_net.sh | 15 | ||||
-rwxr-xr-x | source4/script/tests/win/wintest_raw.sh | 28 | ||||
-rwxr-xr-x | source4/script/tests/win/wintest_rpc.sh | 23 |
8 files changed, 88 insertions, 64 deletions
diff --git a/source4/script/tests/test_win.sh b/source4/script/tests/test_win.sh index 015ee459fc..577282b3ae 100755 --- a/source4/script/tests/test_win.sh +++ b/source4/script/tests/test_win.sh @@ -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 diff --git a/source4/script/tests/tests_win.sh b/source4/script/tests/tests_win.sh index 5c3c81b1eb..b885056ace 100755 --- a/source4/script/tests/tests_win.sh +++ b/source4/script/tests/tests_win.sh @@ -28,7 +28,3 @@ . $WINTESTCONF $SRCDIR/script/tests/test_win.sh - status=$? - - echo "$0 exits with status $status" - exit $status diff --git a/source4/script/tests/win/wintest_2k3_dc.sh b/source4/script/tests/win/wintest_2k3_dc.sh index 7949dc4b9a..ee69a9834a 100755 --- a/source4/script/tests/win/wintest_2k3_dc.sh +++ b/source4/script/tests/win/wintest_2k3_dc.sh @@ -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." diff --git a/source4/script/tests/win/wintest_base.sh b/source4/script/tests/win/wintest_base.sh index fa436a4af8..b12d2923f7 100755 --- a/source4/script/tests/win/wintest_base.sh +++ b/source4/script/tests/win/wintest_base.sh @@ -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 diff --git a/source4/script/tests/win/wintest_client.sh b/source4/script/tests/win/wintest_client.sh index cd6427a0bd..42fbc5c805 100755 --- a/source4/script/tests/win/wintest_client.sh +++ b/source4/script/tests/win/wintest_client.sh @@ -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 diff --git a/source4/script/tests/win/wintest_net.sh b/source4/script/tests/win/wintest_net.sh index d2dbb3bcc0..cd1fd2de92 100755 --- a/source4/script/tests/win/wintest_net.sh +++ b/source4/script/tests/win/wintest_net.sh @@ -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 diff --git a/source4/script/tests/win/wintest_raw.sh b/source4/script/tests/win/wintest_raw.sh index 2459b21d6d..f974dc8770 100755 --- a/source4/script/tests/win/wintest_raw.sh +++ b/source4/script/tests/win/wintest_raw.sh @@ -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 diff --git a/source4/script/tests/win/wintest_rpc.sh b/source4/script/tests/win/wintest_rpc.sh index 40a981e56d..34c195b074 100755 --- a/source4/script/tests/win/wintest_rpc.sh +++ b/source4/script/tests/win/wintest_rpc.sh @@ -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 |