summaryrefslogtreecommitdiff
path: root/source4/script
diff options
context:
space:
mode:
authorBrad Henry <brad@samba.org>2007-02-20 22:28:43 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:48:40 -0500
commit7819f9b6680c171452d64d435db0b3c3b454445b (patch)
tree1a6df6ef922508d40c979d035d6d8d92bdb68064 /source4/script
parent23c36460e17c06380130b95308b224c363b15e79 (diff)
downloadsamba-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)
Diffstat (limited to 'source4/script')
-rwxr-xr-xsource4/script/tests/tests_win2k3_dc.sh22
-rw-r--r--source4/script/tests/win/vm_get_ip.pl2
-rwxr-xr-xsource4/script/tests/win/wintest_2k3_dc.sh116
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