summaryrefslogtreecommitdiff
path: root/source4/script/tests
diff options
context:
space:
mode:
Diffstat (limited to 'source4/script/tests')
-rwxr-xr-xsource4/script/tests/test_win.sh183
1 files changed, 70 insertions, 113 deletions
diff --git a/source4/script/tests/test_win.sh b/source4/script/tests/test_win.sh
index 02d74f8680..03a9515b6b 100755
--- a/source4/script/tests/test_win.sh
+++ b/source4/script/tests/test_win.sh
@@ -7,6 +7,7 @@
# Copyright Brad Henry <brad@samba.org> 2006
# Released under the GNU GPL v2 or later.
+. script/tests/test_functions.sh
# This variable is defined in the per-hosts .fns file.
. $WINTESTCONF
@@ -17,7 +18,7 @@
# I was finding that "cat common.exp wintest_setup.exp | expect -f -"
# fails to run, but exits with 0 status something like 1% of the time.
-setup_win_server_test()
+setup_qfileinfo_test()
{
echo -e "\nSetting up windows environment."
cat $WINTEST_DIR/common.exp > $TMPDIR/setup.exp
@@ -27,29 +28,8 @@ setup_win_server_test()
rm -f $TMPDIR/setup.exp
}
-# Run the smbtorture test.
-run_win_server_test()
-{
- winfailed=0
- echo -e "\nRunning smbtorture tests."
- echo -e "\nRunning RAW-QFILEINFO"
- $SMBTORTURE_BIN_PATH \
- -U $SMBTORTURE_USERNAME%$SMBTORTURE_PASSWORD \
- -d 10 -W $SMBTORTURE_WORKGROUP \
- //$SMBTORTURE_REMOTE_HOST/$SMBTORTURE_REMOTE_SHARE_NAME \
- RAW-QFILEINFO || winfailed=`expr $winfailed + 1`
-
- echo -e "\nRunning RPC-WINREG"
- $SMBTORTURE_BIN_PATH \
- -U $SMBTORTURE_USERNAME%$SMBTORTURE_PASSWORD \
- -W $SMBTORTURE_WORKGROUP \
- ncacn_np:$SMBTORTURE_REMOTE_HOST \
- RPC-WINREG || winfailed=`expr $winfailed + 1`
- err_rtn=$winfailed
-}
-
# Clean up the windows environment after the test has run or failed.
-remove_win_server_test()
+remove_qfileinfo_test()
{
echo -e "\nCleaning up windows environment."
cat $WINTEST_DIR/common.exp > $TMPDIR/remove.exp
@@ -59,103 +39,80 @@ remove_win_server_test()
rm -f $TMPDIR/remove.exp
}
-# Test windows as a server against samba as a client.
-win_server_test()
-{
- echo -e "\nSETUP PHASE"
- setup_win_server_test
- if [ $err_rtn -ne 0 ]; then
- echo -e "\nSamba CLIENT test setup failed."
- return $err_rtn
- fi
- echo -e "\nSamba CLIENT test setup completed successfully."
-
- echo -e "\nTEST PHASE"
- run_win_server_test
- if [ $err_rtn -ne 0 ]; then
- echo -e "\nSamba CLIENT test run failed."
- return $err_rtn
- fi
- echo -e "\nSamba CLIENT test run completed successfully."
-
- echo -e "\nCLEANUP PHASE"
- remove_win_server_test
- if [ $err_rtn -ne 0 ]; then
- echo -e "\nSamba CLIENT test removal failed."
- return $err_rtn
- fi
- echo -e "\nSamba CLIENT test removal completed successfully."
-}
-
-# Test windows as a client against samba as a server.
-win_client_test()
+restore_snapshot()
{
- cat $WINTEST_DIR/common.exp > $TMPDIR/client_test.exp
- cat $WINTEST_DIR/wintest_client.exp >> $TMPDIR/client_test.exp
- expect $TMPDIR/client_test.exp
- err_rtn=$?
- rm -f $TMPDIR/client_test.exp
-}
-
-check_error()
-{
- if [ $err_rtn -ne 0 ]; then
- # Restore snapshot to ensure VM is in a known state.
- perl -I$WINTEST_DIR $WINTEST_DIR/vm_load_snapshot.pl
- echo "Snapshot restored."
- echo "=========================================="
- echo $err_str
- echo "=========================================="
- else
- echo -e "\nALL OK: $cmdline"
- echo "=========================================="
- echo $err_ok_str
- echo "=========================================="
- fi
-
- all_errs=`expr $all_errs + $err_rtn`
-}
-
-get_remote_ip()
-{
- export SMBTORTURE_REMOTE_HOST=`perl -I$WINTEST_DIR $WINTEST_DIR/vm_get_ip.pl`
- err_rtn=$?
+ echo -e $1
+ perl -I$WINTEST_DIR $WINTEST_DIR/vm_load_snapshot.pl
+ echo "Snapshot restored."
}
# Index variable to count the total number of tests which fail.
all_errs=0
-# Get ip address of windows vmware host.
-err_str="Test failed to get the IP address of the windows host."
-err_ok_str="Windows host IP address discovered successfully."
-
-get_remote_ip
-check_error
+export SMBTORTURE_REMOTE_HOST=`perl -I$WINTEST_DIR $WINTEST_DIR/vm_get_ip.pl`
+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."
+ exit 1
+fi
-test_name="SAMBA CLIENT / WINDOWS SERVER"
-echo "--==--==--==--==--==--==--==--==--==--==--"
-echo "Running test $test_name (level 0 stdout)"
-echo "--==--==--==--==--==--==--==--==--==--==--"
-date
-echo "Testing $test_name"
+test_name="RAW-QFILEINFO / WINDOWS SERVER"
+echo -e "\n$test_name SETUP PHASE"
-err_str="TEST FAILED: $test_name"
-err_ok_str="TEST PASSED: $test_name"
+setup_qfileinfo_test
-win_server_test
-check_error
+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."
+else
+ echo -e "\n$test_name setup completed successfully."
+ old_errs=$all_errs
-test_name="WINDOWS CLIENT / SAMBA SERVER"
-echo "--==--==--==--==--==--==--==--==--==--==--"
-echo "Running test $test_name (level 0 stdout)"
-echo "--==--==--==--==--==--==--==--==--==--==--"
-date
-echo "Testing $test_name"
-
-err_str="TEST FAILED: $test_name"
-err_ok_str="TEST PASSED: $test_name"
-
-win_client_test
-check_error
-
-exit $all_errs
+ testit "$test_name" $SMBTORTURE_BIN_PATH \
+ -U $SMBTORTURE_USERNAME%$SMBTORTURE_PASSWORD \
+ -d 10 -W $SMBTORTURE_WORKGROUP \
+ //$SMBTORTURE_REMOTE_HOST/$SMBTORTURE_REMOTE_SHARE_NAME \
+ RAW-QFILEINFO || all_errs=`expr $all_errs + 1`
+ if [ $old_errs -lt $all_errs ]; then
+ # If test fails, load VM snapshot and skip cleanup.
+ restore_snapshot "\n$test_name failed."
+ else
+ echo -e "\n$test_name CLEANUP PHASE"
+ remove_qfileinfo_test
+ if [ $err_rtn -ne 0 ]; then
+ # If cleanup fails, restore VM snapshot.
+ restore_snapshot "\n$test_name removal failed."
+ else
+ echo -e "\n$test_name removal completed successfully."
+ fi
+ fi
+fi
+
+test_name="RPC-WINREG / WINDOWS SERVER"
+old_errs=$all_errs
+
+testit "$test_name" $SMBTORTURE_BIN_PATH \
+ -U $SMBTORTURE_USERNAME%$SMBTORTURE_PASSWORD \
+ -W $SMBTORTURE_WORKGROUP \
+ ncacn_np:$SMBTORTURE_REMOTE_HOST \
+ RPC-WINREG || all_errs=`expr $all_errs + 1`
+if [ $old_errs -lt $all_errs ]; then
+ restore_snapshot "\n$test_name failed."
+fi
+
+test_name="WINDOWS CLIENT / SAMBA SERVER SHARE"
+old_errs=$all_errs
+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_tests.exp || all_errs`expr $all_errs + 1`
+
+if [ $old_errs -lt $all_errs ]; then
+ # Restore snapshot to ensure VM is in a known state.
+ restore_snapshot "\n$test_name failed."
+ echo "Snapshot restored."
+fi
+rm -f $TMPDIR/client_test.exp
+
+testok $0 $all_errs