summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Henry <brad@samba.org>2007-02-21 22:50:55 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:48:44 -0500
commit48b0dabdbaf7538e0896dd137eec5cc97b50a59d (patch)
tree773d9d14a806cd27984bed5d05780dc69f05f96f
parentf487c24a79223c295afc60e05a0fac9794c3a22d (diff)
downloadsamba-48b0dabdbaf7538e0896dd137eec5cc97b50a59d.tar.gz
samba-48b0dabdbaf7538e0896dd137eec5cc97b50a59d.tar.bz2
samba-48b0dabdbaf7538e0896dd137eec5cc97b50a59d.zip
r21494: Fix 'make wintest' to support command-line changes to 'vm-get-ip.pl' and the revertsnapshot() shell function.
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)
-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