[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Tue Apr 19 01:04:02 MDT 2011


The branch, master has been updated
       via  dfb490d selftest Consolidate server wall clock time limits
       via  5189cfc selftest: move warning about invalid environments up to selftest.pl
       via  5439553 selftest: Don't specify SELFTEST_TARGET as an env variable
       via  cfb4eb9 selftest Test for socket_wrapper support in combined samba target as well
       via  1ac4651 selftest: Add hooks to enable a combined selftest run.
       via  790ceec s4-selftest Rename Samba4 'member' test environment to s4member
       via  55cb125 s4-selftest: Move Samba4 test interfaces out of the way of the Samba3 tests.
       via  148efda s3-selftest Fix interface localktest6 listens on.
       via  9000188 selftest Add combined 'Samba' target module
       via  aed450d s4-selftest: Avoid duplicating the servers IP in the provision() sub arguments.
       via  36d4bbf s3-selftest Rename s3 DC environment to s3dc
       via  8f58b13 s4-selftest: Stop creating netbios aliases everywhere
       via  d041ed2 selftest: put the target on the environment
       via  29d8c59 lib/socket_wrapper: allow up to 32 interfaces for a bigger 'make test'
      from  bde2bcc Fix bug 8088 - rpccli_samr_chng_pswd_auth_crap segfaults if any input blobs are null.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit dfb490d551e9213e957ea547cb399c3ed408bdc9
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Apr 19 13:50:40 2011 +1000

    selftest Consolidate server wall clock time limits
    
    This helps ensure that we don't have the Samba3 servers stop before
    the full make test is finished.
    
    Andrew Bartlett
    
    Autobuild-User: Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date: Tue Apr 19 09:03:07 CEST 2011 on sn-devel-104

commit 5189cfca4ea230125c7995d30caf2b48a332deb0
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Apr 19 12:43:54 2011 +1000

    selftest: move warning about invalid environments up to selftest.pl

commit 5439553c96bd906e19be7060552cb59bdaec3eb1
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Apr 19 11:59:28 2011 +1000

    selftest: Don't specify SELFTEST_TARGET as an env variable
    
    It is much more reliable to specify it as a direct parameter, and this
    is needed for the combined 'make test'.
    
    Andrew Bartlett

commit cfb4eb9d8050a52a22679c3261bd3ff8cc7ab1fc
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Apr 19 11:58:50 2011 +1000

    selftest Test for socket_wrapper support in combined samba target as well

commit 1ac46518a7b2009bb6ee21a84d20ee991e7a35ee
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Apr 18 18:59:00 2011 +1000

    selftest: Add hooks to enable a combined selftest run.
    
    Andrew Bartlett

commit 790ceec78bc4f1b5234d8f90eb4bfaa11c2f7d4b
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Apr 18 18:57:22 2011 +1000

    s4-selftest Rename Samba4 'member' test environment to s4member
    
    This will avoid a conflict with the s3 'member' environment.
    
    Andrew Bartlett

commit 55cb12531201f66660c999172ef1b17e05051062
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Apr 18 18:56:41 2011 +1000

    s4-selftest: Move Samba4 test interfaces out of the way of the Samba3 tests.
    
    This avoids a conflict when we merge the test suites.

commit 148efda795e65eb9f5c969dce7f98da0e28d6e97
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Apr 18 18:55:35 2011 +1000

    s3-selftest Fix interface localktest6 listens on.
    
    Andrew Bartlett

commit 9000188fb4226b4c70ae6b50292a0fe2a55e653c
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Apr 18 17:38:35 2011 +1000

    selftest Add combined 'Samba' target module
    
    To work around environment variable handling, the initialisation of
    NSS_WRAPPER_WINBIND_SO_PATH is pushed in to Samba3.pm (the s3 autoconf
    build still overrides this)
    
    Andrew Bartlett

commit aed450df0b38d6648cbfd3229722db82a85ad746
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Apr 18 16:09:30 2011 +1000

    s4-selftest: Avoid duplicating the servers IP in the provision() sub arguments.
    
    This should make it easier to change the IP address.
    
    Andrew Bartlett

commit 36d4bbfeefc8e3818b8cfc2c64941715bded1267
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Apr 18 15:28:40 2011 +1000

    s3-selftest Rename s3 DC environment to s3dc
    
    This should avoid a clash with the s4 DC environment in a future
    combined 'make test'.
    
    Andrew Bartlett

commit 8f58b13579e305b7ce57c220d34934120bca198b
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Apr 18 14:34:40 2011 +1000

    s4-selftest: Stop creating netbios aliases everywhere
    
    This reduces some of the clutter when we have quite so many server
    configurations starting.
    
    The one case that actually needs an alias (dc environment for the
    test_nmblookup.sh test) will still keep it.
    
    Andrew Bartlett

commit d041ed233d1b10604ef1b9f7f1e68f6f5cd96132
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Apr 18 13:44:36 2011 +1000

    selftest: put the target on the environment
    
    This will allow us to have a 'switch' target type that creates
    environments from Samba3 or Samba4 as required.
    
    Andrew Bartlett

commit 29d8c597fc0414658b6234b0bbc136670228e108
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Apr 19 10:02:55 2011 +1000

    lib/socket_wrapper: allow up to 32 interfaces for a bigger 'make test'
    
    The combined s3/s4 'make test' needs more interfaces.
    
    Andrew Bartlett

-----------------------------------------------------------------------

Summary of changes:
 lib/socket_wrapper/socket_wrapper.c      |    5 +-
 selftest/selftest.pl                     |   43 +++++++++---
 selftest/target/Samba.pm                 |   45 ++++++++++++
 selftest/target/Samba3.pm                |  105 +++++++++++++---------------
 selftest/target/Samba4.pm                |  112 +++++++++++------------------
 selftest/wscript                         |   15 +++-
 source3/Makefile.in                      |    2 +-
 source3/selftest/tests.py                |   50 +++++++-------
 source4/scripting/devel/selftest-vars.sh |    1 -
 source4/selftest/tests.py                |   31 ++++----
 10 files changed, 229 insertions(+), 180 deletions(-)
 create mode 100644 selftest/target/Samba.pm


Changeset truncated at 500 lines:

diff --git a/lib/socket_wrapper/socket_wrapper.c b/lib/socket_wrapper/socket_wrapper.c
index 6eb4979..d70459b 100644
--- a/lib/socket_wrapper/socket_wrapper.c
+++ b/lib/socket_wrapper/socket_wrapper.c
@@ -147,7 +147,10 @@
 #define SOCKET_TYPE_CHAR_TCP_V6		'X'
 #define SOCKET_TYPE_CHAR_UDP_V6		'Y'
 
-#define MAX_WRAPPED_INTERFACES 16
+/* This limit is to avoid broadcast sendto() needing to stat too many
+ * files.  It may be raised (with a performance cost) to up to 254
+ * without changing the format above */
+#define MAX_WRAPPED_INTERFACES 32
 
 #ifdef HAVE_IPV6
 /*
diff --git a/selftest/selftest.pl b/selftest/selftest.pl
index 69c95e9..9f937f1 100755
--- a/selftest/selftest.pl
+++ b/selftest/selftest.pl
@@ -481,17 +481,33 @@ sub bindir_path($$) {
 	return $path;
 }
 
-if ($opt_target eq "samba4") {
+# After this many seconds, the server will self-terminate.  All tests
+# must terminate in this time, and testenv will only stay alive this
+# long
+
+my $server_maxtime = 7500;
+if (defined($ENV{SMBD_MAXTIME}) and $ENV{SMBD_MAXTIME} ne "") {
+    $server_maxtime = $ENV{SMBD_MAXTIME};
+}
+
+if ($opt_target eq "samba") {
+	if ($opt_socket_wrapper and `$bindir/smbd -b | grep SOCKET_WRAPPER` eq "") {
+		die("You must include --enable-socket-wrapper when compiling Samba in order to execute 'make test'.  Exiting....");
+	}
+	$testenv_default = "all";
+	require target::Samba;
+	$target = new Samba($bindir, \%binary_mapping, \&bindir_path, $ldap, $srcdir, $exeext, $server_maxtime);
+} elsif ($opt_target eq "samba4") {
 	$testenv_default = "all";
 	require target::Samba4;
-	$target = new Samba4($bindir, \%binary_mapping, \&bindir_path, $ldap, $srcdir, $exeext);
+	$target = new Samba4($bindir, \%binary_mapping, \&bindir_path, $ldap, $srcdir, $exeext, $server_maxtime);
 } elsif ($opt_target eq "samba3") {
 	if ($opt_socket_wrapper and `$bindir/smbd -b | grep SOCKET_WRAPPER` eq "") {
 		die("You must include --enable-socket-wrapper when compiling Samba in order to execute 'make test'.  Exiting....");
 	}
 	$testenv_default = "member";
 	require target::Samba3;
-	$target = new Samba3($bindir, \%binary_mapping, \&bindir_path, $srcdir_abs, $exeext);
+	$target = new Samba3($bindir, \%binary_mapping, \&bindir_path, $srcdir_abs, $exeext, $server_maxtime);
 } elsif ($opt_target eq "win") {
 	die("Windows tests will not run with socket wrapper enabled.") 
 		if ($opt_socket_wrapper);
@@ -699,7 +715,6 @@ if ($opt_quick) {
 } else {
 	$ENV{SELFTEST_QUICK} = "";
 }
-$ENV{SELFTEST_TARGET} = $opt_target;
 $ENV{SELFTEST_MAXTIME} = $torture_maxtime;
 
 my @available = ();
@@ -865,14 +880,21 @@ sub setup_env($$)
 		$testenv_vars = {};
 	} elsif (defined(get_running_env($envname))) {
 		$testenv_vars = get_running_env($envname);
-		if (not $target->check_env($testenv_vars)) {
-			print $target->getlog_env($testenv_vars);
+		if (not $testenv_vars->{target}->check_env($testenv_vars)) {
+			print $testenv_vars->{target}->getlog_env($testenv_vars);
 			$testenv_vars = undef;
 		}
 	} else {
 		$testenv_vars = $target->setup_env($envname, $prefix);
+		if (defined($testenv_vars) && not defined($testenv_vars->{target})) {
+		        $testenv_vars->{target} = $target;
+		}
+		if (not defined($testenv_vars)) {
+		        warn("$opt_target can't provide environment '$envname'");
+		}
 	}
 
+	
 	return undef unless defined($testenv_vars);
 
 	$running_envs{$envname} = $testenv_vars;
@@ -916,21 +938,24 @@ sub getlog_env($)
 {
 	my ($envname) = @_;
 	return "" if ($envname eq "none");
-	return $target->getlog_env(get_running_env($envname));
+	my $env = get_running_env($envname);
+	return $env->{target}->getlog_env($env);
 }
 
 sub check_env($)
 {
 	my ($envname) = @_;
 	return 1 if ($envname eq "none");
-	return $target->check_env(get_running_env($envname));
+	my $env = get_running_env($envname);
+	return $env->{target}->check_env($env);
 }
 
 sub teardown_env($)
 {
 	my ($envname) = @_;
 	return if ($envname eq "none");
-	$target->teardown_env(get_running_env($envname));
+	my $env = get_running_env($envname);
+	$env->{target}->teardown_env($env);
 	delete $running_envs{$envname};
 }
 
diff --git a/selftest/target/Samba.pm b/selftest/target/Samba.pm
new file mode 100644
index 0000000..fc7e68d
--- /dev/null
+++ b/selftest/target/Samba.pm
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+# Bootstrap Samba and run a number of tests against it.
+# Copyright (C) 2005-2007 Jelmer Vernooij <jelmer at samba.org>
+# Published under the GNU GPL, v3 or later.
+
+package Samba;
+
+use strict;
+use target::Samba3;
+use target::Samba4;
+
+sub new($$$$$) {
+	my ($classname, $bindir, $binary_mapping, $bindir_path, $ldap, $srcdir, $exeext, $server_maxtime) = @_;
+
+	my $self = {
+	    samba3 => new Samba3($bindir,$binary_mapping, $bindir_path, $srcdir, $exeext, $server_maxtime),
+	    samba4 => new Samba4($bindir,$binary_mapping, $bindir_path, $ldap, $srcdir, $exeext, $server_maxtime),
+	};
+	bless $self;
+	return $self;
+}
+
+sub setup_env($$$)
+{
+	my ($self, $envname, $path) = @_;
+
+	$ENV{ENVNAME} = $envname;
+
+	my $env = $self->{samba4}->setup_env($envname, $path);
+	if (defined($env)) {
+	    $env->{target} = $self->{samba4};
+	} else {
+	   	$env = $self->{samba3}->setup_env($envname, $path);
+		if (defined($env)) {
+		    $env->{target} = $self->{samba3};
+		}
+	}
+	if (not defined $env) {
+		warn("Samba can't provide environment '$envname'");
+		return undef;
+	}
+	return $env;
+}
+
+1;
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index 088acfd..3c0dd09 100644
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -11,14 +11,15 @@ use FindBin qw($RealBin);
 use POSIX;
 
 sub new($$) {
-	my ($classname, $bindir, $binary_mapping, $bindir_path, $srcdir, $exeext) = @_;
+	my ($classname, $bindir, $binary_mapping, $bindir_path, $srcdir, $exeext, $server_maxtime) = @_;
 	$exeext = "" unless defined($exeext);
 	my $self = { vars => {},
 		     bindir => $bindir,
 		     binary_mapping => $binary_mapping,
 		     bindir_path => $bindir_path,
 		     srcdir => $srcdir,
-		     exeext => $exeext
+		     exeext => $exeext,
+		     server_maxtime => $server_maxtime
 	};
 	bless $self;
 	return $self;
@@ -90,53 +91,52 @@ sub setup_env($$$)
 {
 	my ($self, $envname, $path) = @_;
 	
-	if ($envname eq "dc") {
-		return $self->setup_dc("$path/dc");
+	if ($envname eq "s3dc") {
+		return $self->setup_s3dc("$path/s3dc");
 	} elsif ($envname eq "secshare") {
 		return $self->setup_secshare("$path/secshare");
 	} elsif ($envname eq "ktest") {
 		return $self->setup_ktest("$path/ktest");
 	} elsif ($envname eq "secserver") {
-		if (not defined($self->{vars}->{dc})) {
-			if (not defined($self->setup_dc("$path/dc"))) {
+		if (not defined($self->{vars}->{s3dc})) {
+			if (not defined($self->setup_s3dc("$path/s3dc"))) {
 			        return undef;
 			}
 		}
-		return $self->setup_secserver("$path/secserver", $self->{vars}->{dc});
+		return $self->setup_secserver("$path/secserver", $self->{vars}->{s3dc});
 	} elsif ($envname eq "member") {
-		if (not defined($self->{vars}->{dc})) {
-			if (not defined($self->setup_dc("$path/dc"))) {
+		if (not defined($self->{vars}->{s3dc})) {
+			if (not defined($self->setup_s3dc("$path/s3dc"))) {
 			        return undef;
 			}
 		}
-		return $self->setup_member("$path/member", $self->{vars}->{dc});
+		return $self->setup_member("$path/member", $self->{vars}->{s3dc});
 	} else {
 		return undef;
 	}
 }
 
-sub setup_dc($$)
+sub setup_s3dc($$)
 {
 	my ($self, $path) = @_;
 
-	print "PROVISIONING DC...";
+	print "PROVISIONING S3DC...";
 
-	my $dc_options = "
+	my $s3dc_options = "
 	domain master = yes
 	domain logons = yes
 	lanman auth = yes
 ";
 
 	my $vars = $self->provision($path,
-				    "LOCALDC2",
+				    "LOCALS3DC2",
 				    2,
-				    "localdc2pass",
-				    $dc_options);
+				    "locals3dc2pass",
+				    $s3dc_options);
 
 	$vars or return undef;
 
 	$self->check_or_start($vars,
-			      ($ENV{SMBD_MAXTIME} or 2700),
 			       "yes", "yes", "yes");
 
 	if (not $self->wait_for_start($vars)) {
@@ -149,14 +149,14 @@ sub setup_dc($$)
 	$vars->{DC_USERNAME} = $vars->{USERNAME};
 	$vars->{DC_PASSWORD} = $vars->{PASSWORD};
 
-	$self->{vars}->{dc} = $vars;
+	$self->{vars}->{s3dc} = $vars;
 
 	return $vars;
 }
 
 sub setup_member($$$)
 {
-	my ($self, $prefix, $dcvars) = @_;
+	my ($self, $prefix, $s3dcvars) = @_;
 
 	print "PROVISIONING MEMBER...";
 
@@ -175,24 +175,22 @@ sub setup_member($$$)
 	my $net = $self->{bindir_path}->($self, "net");
 	my $cmd = "";
 	$cmd .= "SOCKET_WRAPPER_DEFAULT_IFACE=\"$ret->{SOCKET_WRAPPER_DEFAULT_IFACE}\" ";
-	$cmd .= "$net join $ret->{CONFIGURATION} $dcvars->{DOMAIN} member";
-	$cmd .= " -U$dcvars->{USERNAME}\%$dcvars->{PASSWORD}";
+	$cmd .= "$net join $ret->{CONFIGURATION} $s3dcvars->{DOMAIN} member";
+	$cmd .= " -U$s3dcvars->{USERNAME}\%$s3dcvars->{PASSWORD}";
 
 	system($cmd) == 0 or die("Join failed\n$cmd");
 
-	$self->check_or_start($ret,
-			      ($ENV{SMBD_MAXTIME} or 2700),
-			       "yes", "yes", "yes");
+	$self->check_or_start($ret, "yes", "yes", "yes");
 
 	if (not $self->wait_for_start($ret)) {
 	       return undef;
 	}
 
-	$ret->{DC_SERVER} = $dcvars->{SERVER};
-	$ret->{DC_SERVER_IP} = $dcvars->{SERVER_IP};
-	$ret->{DC_NETBIOSNAME} = $dcvars->{NETBIOSNAME};
-	$ret->{DC_USERNAME} = $dcvars->{USERNAME};
-	$ret->{DC_PASSWORD} = $dcvars->{PASSWORD};
+	$ret->{DC_SERVER} = $s3dcvars->{SERVER};
+	$ret->{DC_SERVER_IP} = $s3dcvars->{SERVER_IP};
+	$ret->{DC_NETBIOSNAME} = $s3dcvars->{NETBIOSNAME};
+	$ret->{DC_USERNAME} = $s3dcvars->{USERNAME};
+	$ret->{DC_PASSWORD} = $s3dcvars->{PASSWORD};
 
 	return $ret;
 }
@@ -216,9 +214,7 @@ sub setup_secshare($$)
 
 	$vars or return undef;
 
-	$self->check_or_start($vars,
-			      ($ENV{SMBD_MAXTIME} or 2700),
-			       "yes", "no", "yes");
+	$self->check_or_start($vars, "yes", "no", "yes");
 
 	if (not $self->wait_for_start($vars)) {
 	       return undef;
@@ -231,13 +227,13 @@ sub setup_secshare($$)
 
 sub setup_secserver($$$)
 {
-	my ($self, $prefix, $dcvars) = @_;
+	my ($self, $prefix, $s3dcvars) = @_;
 
 	print "PROVISIONING server with security=server...";
 
 	my $secserver_options = "
 	security = server
-        password server = $dcvars->{SERVER_IP}
+        password server = $s3dcvars->{SERVER_IP}
 ";
 
 	my $ret = $self->provision($prefix,
@@ -248,26 +244,24 @@ sub setup_secserver($$$)
 
 	$ret or return undef;
 
-	$self->check_or_start($ret,
-			      ($ENV{SMBD_MAXTIME} or 2700),
-			       "yes", "no", "yes");
+	$self->check_or_start($ret, "yes", "no", "yes");
 
 	if (not $self->wait_for_start($ret)) {
 	       return undef;
 	}
 
-	$ret->{DC_SERVER} = $dcvars->{SERVER};
-	$ret->{DC_SERVER_IP} = $dcvars->{SERVER_IP};
-	$ret->{DC_NETBIOSNAME} = $dcvars->{NETBIOSNAME};
-	$ret->{DC_USERNAME} = $dcvars->{USERNAME};
-	$ret->{DC_PASSWORD} = $dcvars->{PASSWORD};
+	$ret->{DC_SERVER} = $s3dcvars->{SERVER};
+	$ret->{DC_SERVER_IP} = $s3dcvars->{SERVER_IP};
+	$ret->{DC_NETBIOSNAME} = $s3dcvars->{NETBIOSNAME};
+	$ret->{DC_USERNAME} = $s3dcvars->{USERNAME};
+	$ret->{DC_PASSWORD} = $s3dcvars->{PASSWORD};
 
 	return $ret;
 }
 
 sub setup_ktest($$$)
 {
-	my ($self, $prefix, $dcvars) = @_;
+	my ($self, $prefix, $s3dcvars) = @_;
 
 	print "PROVISIONING server with security=ads...";
 
@@ -280,7 +274,7 @@ sub setup_ktest($$$)
 
 	my $ret = $self->provision($prefix,
 				   "LOCALKTEST6",
-				   5,
+				   6,
 				   "localktest6pass",
 				   $ktest_options);
 
@@ -330,9 +324,7 @@ $ret->{USERNAME} = KTEST\\Administrator
 	system("cp $self->{srcdir}/source3/selftest/ktest-krb5_ccache-3 $prefix/krb5_ccache-3");
 	chmod 0600, "$prefix/krb5_ccache-3";
 
-	$self->check_or_start($ret,
-			      ($ENV{SMBD_MAXTIME} or 2700),
-			       "yes", "no", "yes");
+	$self->check_or_start($ret, "yes", "no", "yes");
 
 	if (not $self->wait_for_start($ret)) {
 	       return undef;
@@ -369,8 +361,8 @@ sub read_pid($$)
 	return $pid;
 }
 
-sub check_or_start($$$$$) {
-	my ($self, $env_vars, $maxtime, $nmbd, $winbindd, $smbd) = @_;
+sub check_or_start($$$$) {
+	my ($self, $env_vars, $nmbd, $winbindd, $smbd) = @_;
 
 	unlink($env_vars->{NMBD_TEST_LOG});
 	print "STARTING NMBD...";
@@ -394,7 +386,7 @@ sub check_or_start($$$$$) {
 				print("Skip nmbd received signal $signame");
 				exit 0;
 			};
-			sleep($maxtime);
+			sleep($self->{server_maxtime});
 			exit 0;
 		}
 
@@ -405,7 +397,7 @@ sub check_or_start($$$$$) {
 
 		$ENV{MAKE_TEST_BINARY} = $self->{bindir_path}->($self, "nmbd");
 
-		my @preargs = ($self->{bindir_path}->($self, "timelimit"), $maxtime);
+		my @preargs = ($self->{bindir_path}->($self, "timelimit"), $self->{server_maxtime});
 		if(defined($ENV{NMBD_VALGRIND})) { 
 			@preargs = split(/ /, $ENV{NMBD_VALGRIND});
 		}
@@ -437,7 +429,7 @@ sub check_or_start($$$$$) {
 				print("Skip winbindd received signal $signame");
 				exit 0;
 			};
-			sleep($maxtime);
+			sleep($self->{server_maxtime});
 			exit 0;
 		}
 
@@ -448,7 +440,7 @@ sub check_or_start($$$$$) {
 
 		$ENV{MAKE_TEST_BINARY} = $self->{bindir_path}->($self, "winbindd");
 
-		my @preargs = ($self->{bindir_path}->($self, "timelimit"), $maxtime);
+		my @preargs = ($self->{bindir_path}->($self, "timelimit"), $self->{server_maxtime});
 		if(defined($ENV{WINBINDD_VALGRIND})) {
 			@preargs = split(/ /, $ENV{WINBINDD_VALGRIND});
 		}
@@ -480,7 +472,7 @@ sub check_or_start($$$$$) {
 				print("Skip smbd received signal $signame");
 				exit 0;
 			};
-			sleep($maxtime);
+			sleep($self->{server_maxtime});
 			exit 0;
 		}
 
@@ -489,7 +481,7 @@ sub check_or_start($$$$$) {
 		if (defined($ENV{SMBD_OPTIONS})) {
 			@optargs = split(/ /, $ENV{SMBD_OPTIONS});
 		}
-		my @preargs = ($self->{bindir_path}->($self, "timelimit"), $maxtime);
+		my @preargs = ($self->{bindir_path}->($self, "timelimit"), $self->{server_maxtime});
 		if(defined($ENV{SMBD_VALGRIND})) {
 			@preargs = split(/ /,$ENV{SMBD_VALGRIND});
 		}
@@ -850,6 +842,9 @@ domusers:X:$gid_domusers:
 	$ret{NSS_WRAPPER_PASSWD} = $nss_wrapper_passwd;
 	$ret{NSS_WRAPPER_GROUP} = $nss_wrapper_group;
 	$ret{NSS_WRAPPER_WINBIND_SO_PATH} = $ENV{NSS_WRAPPER_WINBIND_SO_PATH};
+        if (not defined($ret{NSS_WRAPPER_WINBIND_SO_PATH})) {
+	        $ret{NSS_WRAPPER_WINBIND_SO_PATH} = $self->{bindir_path}->($self, "default/nsswitch/libnss-winbind.so");
+        }
 	$ret{LOCAL_PATH} = "$shrdir";
 
 	return \%ret;
diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm
index 6f78074..69d5c3b 100644
--- a/selftest/target/Samba4.pm
+++ b/selftest/target/Samba4.pm
@@ -12,7 +12,7 @@ use POSIX;
 use SocketWrapper;
 
 sub new($$$$$) {
-	my ($classname, $bindir, $binary_mapping, $bindir_path, $ldap, $srcdir, $exeext) = @_;
+	my ($classname, $bindir, $binary_mapping, $bindir_path, $ldap, $srcdir, $exeext, $server_maxtime) = @_;
 	$exeext = "" unless defined($exeext);
 
 	my $self = {
@@ -22,7 +22,8 @@ sub new($$$$$) {
 		binary_mapping => $binary_mapping,
 		bindir_path => $bindir_path,
 		srcdir => $srcdir,
-		exeext => $exeext
+		exeext => $exeext,
+		server_maxtime => $server_maxtime
 	};
 	bless $self;
 	return $self;
@@ -82,9 +83,9 @@ sub slapd_stop($$)
 	return 1;
 }
 
-sub check_or_start($$$)
+sub check_or_start($$)
 {
-	my ($self, $env_vars, $max_time) = @_;
+	my ($self, $env_vars) = @_;
 	return 0 if ( -p $env_vars->{SAMBA_TEST_FIFO});
 
 	unlink($env_vars->{SAMBA_TEST_FIFO});
@@ -126,9 +127,7 @@ sub check_or_start($$$)


-- 
Samba Shared Repository


More information about the samba-cvs mailing list