diff options
-rwxr-xr-x | source4/script/tests/tests_win2k3_dc.sh | 22 | ||||
-rw-r--r-- | source4/script/tests/win/vm_get_ip.pl | 2 | ||||
-rwxr-xr-x | source4/script/tests/win/wintest_2k3_dc.sh | 116 |
3 files changed, 139 insertions, 1 deletions
diff --git a/source4/script/tests/tests_win2k3_dc.sh b/source4/script/tests/tests_win2k3_dc.sh new file mode 100755 index 0000000000..281361475f --- /dev/null +++ b/source4/script/tests/tests_win2k3_dc.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +if [ ! $WINTESTCONF ]; then + echo "Environment variable WINTESTCONF has not been defined." + echo "Windows tests will not run unconfigured." + exit 1 +fi + +if [ ! -r $WINTESTCONF ]; then + echo "$WINTESTCONF could not be read." + exit 1 +fi + +. script/tests/test_functions.sh + +export SRCDIR=$SRCDIR + +tests="RPC-DRSUAPI RPC-SPOOLSS ncacn_np ncacn_ip_tcp" + +for name in $tests; do + testit $name $SRCDIR/script/tests/win/wintest_2k3_dc.sh $name +done diff --git a/source4/script/tests/win/vm_get_ip.pl b/source4/script/tests/win/vm_get_ip.pl index ee04fe6a99..9286786155 100644 --- a/source4/script/tests/win/vm_get_ip.pl +++ b/source4/script/tests/win/vm_get_ip.pl @@ -19,7 +19,7 @@ sub check_error { } # Read in parameters from environment. -my $vm_cfg_path = $ENV{'VM_CFG_PATH'}; +my $vm_cfg_path = $ENV{"$ARGV[0]"}; my $host_server_name = $ENV{'HOST_SERVER_NAME'}; my $host_server_port = $ENV{'HOST_SERVER_PORT'}; if (!defined($host_server_port)) { diff --git a/source4/script/tests/win/wintest_2k3_dc.sh b/source4/script/tests/win/wintest_2k3_dc.sh new file mode 100755 index 0000000000..7949dc4b9a --- /dev/null +++ b/source4/script/tests/win/wintest_2k3_dc.sh @@ -0,0 +1,116 @@ +#!/bin/sh + +if [ $# -lt 1 ]; then +cat <<EOF +Usage: wintest_2k3_dc.sh TESTGROUP +EOF +exit 1; +fi + +TESTGROUP=$1 + +if [ -z $SRCDIR ]; then + echo "Please point environment variable SRCDIR to the Samba 4 source tree." + 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." + exit 1; +fi + +. $WINTESTCONF +. $WINTEST_DIR/wintest_functions.sh + +WIN2K3_DC_REMOTE_HOST=`perl -I$WINTEST_DIR $WINTEST_DIR/vm_get_ip.pl WIN2K3_DC_VM_CFG_PATH` + +if [ -z $WIN2K3_DC_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 2003 DC." "$WIN2K3_DC_VM_CFG_PATH" + exit 1; +fi + +server=$WIN2K3_DC_REMOTE_HOST +username=$WIN2K3_DC_USERNAME +password=$WIN2K3_DC_PASSWORD +domain=$WIN2K3_DC_DOMAIN +realm=$WIN2K3_DC_REALM + +OPTIONS="-U$username%$password -W $domain --option realm=$realm" + +all_errs=0 + +on_error() { + name=$1 + + all_errs=`expr $all_errs + 1` + restore_snapshot "$name test failed." "$WIN2K3_DC_VM_CFG_PATH" +} + +drsuapi_tests() { + + name="RPC-DRSUAPI on ncacn_ip_tcp with seal" + bin/smbtorture \ + ncacn_ip_tcp:$server[seal] $OPTIONS \ + RPC-DRSUAPI || on_error $name + + name="RPC-DRSUAPI on ncacn_ip_tcp with seal,bigendian" + bin/smbtorture \ + ncacn_ip_tcp:$server[seal,bigendian] $OPTIONS \ + RPC-DRSUAPI || on_error $name +} + +spoolss_tests() { + + name="RPC-SPOOLSS on ncacn_np" + bin/smbtorture \ + ncacn_np:$server $OPTIONS \ + RPC-SPOOLSS || on_error $name +} + +ncacn_ip_tcp_tests() { + bindopt=$1 + transport="ncacn_ip_tcp" + tests="RPC-SCHANNEL RPC-EPMAPPER RPC-SAMR RPC-NETLOGON RPC-LSA RPC-SAMLOGON RPC-SAMSYNC RPC-MULTIBIND" + + for bindoptions in $bindopt; do + for t in $tests; do + name="$t on $transport with $bindoptions" + bin/smbtorture $TORTURE_OPTIONS \ + $transport:$server[$bindoptions] \ + $OPTIONS $t || on_error $name + done + done +} + +ncacn_np_tests() { + bindopt=$1 + transport="ncacn_np" + tests="RPC-SCHANNEL RPC-DSSETUP RPC-EPMAPPER RPC-SAMR RPC-WKSSVC RPC-SRVSVC RPC-EVENTLOG RPC-NETLOGON RPC-LSA RPC-SAMLOGON RPC-SAMSYNC RPC-MULTIBIND RPC-WINREG" + + for bindoptions in $bindopt; do + for t in $tests; do + name="$t on $transport with $bindoptions" + bin/smbtorture $TORTURE_OPTIONS \ + $transport:$server[$bindoptions] \ + $OPTIONS $t || on_error $name + done + done +} + +bindoptions="padcheck connect sign seal ntlm,sign ntml,seal $VALIDATE bigendian" + +case $TESTGROUP in + RPC-DRSUAPI) drsuapi_tests ;; + RPC-SPOOLSS) spoolss_tests ;; + ncacn_ip_tcp) ncacn_ip_tcp_tests $bindoptions ;; + ncacn_np) ncacn_np_tests $bindoptions ;; + *) echo "$TESTGROUP is not a known set of tests." + exit 1; + ;; +esac + +exit $all_errs |