summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsource4/script/tests/test_win.sh40
-rwxr-xr-xsource4/script/tests/tests_win.sh4
-rwxr-xr-xsource4/script/tests/win/wintest_2k3_dc.sh6
-rwxr-xr-xsource4/script/tests/win/wintest_base.sh26
-rwxr-xr-xsource4/script/tests/win/wintest_client.sh10
-rwxr-xr-xsource4/script/tests/win/wintest_net.sh15
-rwxr-xr-xsource4/script/tests/win/wintest_raw.sh28
-rwxr-xr-xsource4/script/tests/win/wintest_rpc.sh23
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