diff options
author | Brad Henry <brad@samba.org> | 2007-02-20 22:28:43 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:48:40 -0500 |
commit | 7819f9b6680c171452d64d435db0b3c3b454445b (patch) | |
tree | 1a6df6ef922508d40c979d035d6d8d92bdb68064 | |
parent | 23c36460e17c06380130b95308b224c363b15e79 (diff) | |
download | samba-7819f9b6680c171452d64d435db0b3c3b454445b.tar.gz samba-7819f9b6680c171452d64d435db0b3c3b454445b.tar.bz2 samba-7819f9b6680c171452d64d435db0b3c3b454445b.zip |
r21475: Updated vm_get_ip.pl to read the name of the environment variable containing the VM path from the command line.
wintest_2k3_dc.sh is a new script which will run a group of tests against a Windows 2003 DC.
The group of tests to run should be passed in on the command line.
These tests were taken from the source/script/tests/test_win2k3.sh script.
tests_win2k3_dc.sh is a new script intended to be called by 'make wintest_dc' (patch to source/main.mk forthcoming).
This is intended to provide the basis for Windows 2003 DC testing in the build farm.
In order to use these tests, you should have a DC setup as a VM in VMware server.
This process is not automated yet, but can be done by following a few steps:
1. Prepare a Windows 2003 VM in VMware Server by downloading and extracting:
svn://svn.samba.org/home/svn/samba/branches/SOC/bnh/vm_setup.tar.gz
and following the instructions in the README file.
2. Copying the following file onto the filesystem of the VM configured in step 1:
svn://svn.samba.org/home/svn/samba/branches/SOC/bnh/dcpromo_2k3dc_newdomain.answerfile.txt
and use it to promote the VM.
For example: "dcpromo /answer:<path to answerfile>"
3. On the system you are testing from, set the environment variable WINTESTCONF, and SRCDIR.
WINTESTCONF should point to the path of a test_win.conf file modified for your environment.
There's a default copy in source/script/tests/win/test_win.conf.
SRCDIR should point to the base of your Samba 4 source tree.
At that point, you should be able to run wintest_2k3_dc.sh by passing a group of tests at the command line.
For example: source/script/tests/win/wintest_2k3_dc.sh RPC-DRSUAPI
Sorry for the long-winded commit message!
(This used to be commit a0d1c690de2e58eddf5517eb974e09c2bba23605)
-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 |