svn commit: samba r22185 - in branches/SAMBA_4_0: . source/script/tests

jelmer at samba.org jelmer at samba.org
Thu Apr 12 08:33:36 GMT 2007


Author: jelmer
Date: 2007-04-12 08:33:35 +0000 (Thu, 12 Apr 2007)
New Revision: 22185

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22185

Log:
Initial work on a 'member' test environment'.
Added:
   branches/SAMBA_4_0/source/script/tests/mktestmember.sh
   branches/SAMBA_4_0/source/script/tests/test_member.sh
Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/script/tests/README
   branches/SAMBA_4_0/source/script/tests/Samba4.pm
   branches/SAMBA_4_0/source/script/tests/TODO


Changeset:

Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:merge
...skipped...

Modified: branches/SAMBA_4_0/source/script/tests/README
===================================================================
--- branches/SAMBA_4_0/source/script/tests/README	2007-04-12 04:01:42 UTC (rev 22184)
+++ branches/SAMBA_4_0/source/script/tests/README	2007-04-12 08:33:35 UTC (rev 22185)
@@ -1,4 +1,13 @@
 This directory contains test scripts that are useful for running a
-bunch of tests all at once. I expect it will eventually be hooked into
-a "make test" framework.
+bunch of tests all at once. 
 
+The following environments are currently available:
+
+ - none: No server set up
+ - dc: Domain controller set up. The following environment variables will 
+   be set:
+     * USERNAME
+	 * PASSWORD
+	 * DOMAIN
+	 * REALM
+	 * SERVER

Modified: branches/SAMBA_4_0/source/script/tests/Samba4.pm
===================================================================
--- branches/SAMBA_4_0/source/script/tests/Samba4.pm	2007-04-12 04:01:42 UTC (rev 22184)
+++ branches/SAMBA_4_0/source/script/tests/Samba4.pm	2007-04-12 08:33:35 UTC (rev 22185)
@@ -11,7 +11,7 @@
 
 sub new($$$$) {
 	my ($classname, $bindir, $ldap, $setupdir) = @_;
-	my $self = { ldap => $ldap, bindir => $bindir, setupdir => $setupdir };
+	my $self = { vars => {}, ldap => $ldap, bindir => $bindir, setupdir => $setupdir };
 	bless $self;
 	return $self;
 }
@@ -135,8 +135,25 @@
 	system("bin/nmblookup $testenv_vars->{CONFIGURATION} -U $testenv_vars->{SERVER} $testenv_vars->{NETBIOSNAME}");
 }
 
-sub provision($$)
+sub provision_member($$$)
 {
+	my ($self, $prefix, $dcvars) = @_;
+	my %ret = ();
+	print "PROVISIONING...";
+	open(IN, "$RealBin/mktestmember.sh $prefix $dcvars->{DOMAIN} $dcvars->{USERNAME} $dcvars->{PASSWORD}|") or die("Unable to setup");
+	while (<IN>) {
+		die ("Error parsing `$_'") unless (/^([A-Z0-9a-z_]+)=(.*)$/);
+		$ret{$1} = $2;
+	}
+	close(IN);
+
+	$ret{SMBD_TEST_FIFO} = "$prefix/smbd_test.fifo";
+	$ret{SMBD_TEST_LOG} = "$prefix/smbd_test.log";
+	return \%ret;
+}
+
+sub provision_dc($$)
+{
 	my ($self, $prefix) = @_;
 	my %ret = ();
 	print "PROVISIONING...";
@@ -186,22 +203,42 @@
 	
 	if ($envname eq "dc") {
 		return $self->setup_dc("$path/dc");
+	} elsif ($envname eq "member") {
+		if (not defined($self->{vars}->{dc})) {
+			$self->setup_dc("$path/dc");
+		}
+		return $self->setup_member("$path/member", $self->{vars}->{dc});
 	} else {
-		die("Samba4 can't provide environment $envname");
+		die("Samba4 can't provide environment '$envname'");
 	}
 }
 
+sub setup_member($$$$)
+{
+	my ($self, $path, $dc_vars) = @_;
+
+	my $env = $self->provision_member($path, $dc_vars);
+
+	$self->check_or_start($env, ($ENV{SMBD_MAX_TIME} or 5400));
+
+	$self->wait_for_start($env);
+
+	return $env;
+}
+
 sub setup_dc($$)
 {
 	my ($self, $path) = @_;
 
-	my $env = $self->provision($path);
+	my $env = $self->provision_dc($path);
 
 	$self->check_or_start($env, 
 		($ENV{SMBD_MAX_TIME} or 5400));
 
 	$self->wait_for_start($env);
 
+	$self->{vars}->{dc} = $env;
+
 	return $env;
 }
 

Modified: branches/SAMBA_4_0/source/script/tests/TODO
===================================================================
--- branches/SAMBA_4_0/source/script/tests/TODO	2007-04-12 04:01:42 UTC (rev 22184)
+++ branches/SAMBA_4_0/source/script/tests/TODO	2007-04-12 08:33:35 UTC (rev 22185)
@@ -1,5 +1,3 @@
 - warn about unexpected successes
-- support for environments
 - better way to detect that smbd has finished initialization
-- allow tests to specify what parameters they need
- - UNC / DCERPC binding strings
+- move ldap-specific code into mktestdc.sh

Added: branches/SAMBA_4_0/source/script/tests/mktestmember.sh
===================================================================
--- branches/SAMBA_4_0/source/script/tests/mktestmember.sh	2007-04-12 04:01:42 UTC (rev 22184)
+++ branches/SAMBA_4_0/source/script/tests/mktestmember.sh	2007-04-12 08:33:35 UTC (rev 22185)
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+if [ $# -lt 4 ]
+then
+	echo "$0 PREFIX DOMAIN USERNAME PASSWORD"
+	exit 1
+fi
+
+PREFIX=$1
+DOMAIN=$2
+DC_USERNAME=$3
+DC_PASSWORD=$4
+shift 4
+USERNAME=administrator
+PASSWORD=humbolt
+
+SRCDIR=`pwd`
+oldpwd=`dirname $0`/../..
+mkdir -p $PREFIX 
+cd $PREFIX
+PREFIX_ABS=`pwd`
+ETCDIR=$PREFIX_ABS/etc
+NCALRPCDIR=$PREFIX_ABS/ncalrpc
+PIDDIR=$PREFIX_ABS/pid
+PRIVATEDIR=$PREFIX_ABS/private
+LOCKDIR=$PREFIX_ABS/lockdir
+WINBINDD_SOCKET_DIR=$PREFIX_ABS/winbind_socket
+CONFFILE=$ETCDIR/smb.conf
+TMPDIR=$PREFIX_ABS/tmp
+NETBIOSNAME=localmember
+SMBD_LOGLEVEL=1
+
+mkdir -p $PRIVATEDIR $ETCDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR
+
+cat >$CONFFILE<<EOF
+[global]
+	netbios name = $NETBIOSNAME
+	workgroup = $DOMAIN
+	private dir = $PRIVATEDIR
+	pid directory = $PIDDIR
+	ncalrpc dir = $NCALRPCDIR
+	lock dir = $LOCKDIR
+	setup directory = $SRCDIR/setup
+	js include = $SRCDIR/scripting/libjs
+	winbindd socket directory = $WINBINDD_SOCKET_DIR
+	name resolve order = bcast
+	interfaces = 127.0.0.5/8
+	panic action = $SRCDIR/script/gdb_backtrace %PID% %PROG%
+	wins support = yes
+	server role = domain member
+	max xmit = 32K
+	server max protocol = SMB2
+	notify:inotify = false
+	ldb:nosync = true
+	system:anonymous = true
+#We don't want to pass our self-tests if the PAC code is wrong
+	gensec:require_pac = true
+	log level = $SMBD_LOGLEVEL
+EOF
+
+PROVISION_OPTIONS="$CONFIGURATION --host-name=$NETBIOSNAME --host-ip=127.0.0.1"
+PROVISION_OPTIONS="$PROVISION_OPTIONS --quiet --domain $DOMAIN --realm $REALM"
+PROVISION_OPTIONS="$PROVISION_OPTIONS --adminpass $PASSWORD --root=$ROOT"
+PROVISION_OPTIONS="$PROVISION_OPTIONS --simple-bind-dn=cn=Manager,$BASEDN --password=$PASSWORD --root=$ROOT"
+$srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS >&2
+
+$srcdir/bin/net join member $DOMAIN -U$DC_USERNAME%$DC_PASSWORD >&2 || {
+	echo "Join failed"
+	exit $?
+}
+
+echo "PREFIX_ABS=$PREFIX_ABS"
+echo "PIDDIR=$PIDDIR"
+echo "SERVER=$SERVER"
+echo "NETBIOSNAME=$NETBIOSNAME"
+echo "DOMAIN=$DOMAIN"
+echo "USERNAME=$USERNAME"
+echo "REALM=$REALM"
+echo "PASSWORD=$PASSWORD"
+echo "SRCDIR=$SRCDIR"
+echo "PREFIX=$PREFIX"
+echo "CONFFILE=$CONFFILE"
+echo "WINBINDD_SOCKET_DIR=$WINBINDD_SOCKET_DIR"
+echo "NCALRPCDIR=$NCALRPCDIR"
+echo "CONFIGURATION=$CONFIGURATION"

Added: branches/SAMBA_4_0/source/script/tests/test_member.sh
===================================================================
--- branches/SAMBA_4_0/source/script/tests/test_member.sh	2007-04-12 04:01:42 UTC (rev 22184)
+++ branches/SAMBA_4_0/source/script/tests/test_member.sh	2007-04-12 08:33:35 UTC (rev 22185)
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# add tests to this list as they start passing, so we test
+# that they stay passing
+ncacn_np_tests="RPC-ECHO"
+
+incdir=`dirname $0`
+. $incdir/test_functions.sh
+
+plantest "RPC-ECHO against member server" member $VALGRIND bin/smbtorture $TORTURE_OPTIONS ncacn_np:"\$SERVER" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"


Property changes on: branches/SAMBA_4_0/source/script/tests/test_member.sh
___________________________________________________________________
Name: svn:executable
   + *



More information about the samba-cvs mailing list