return $path;
}
+# 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);
+ $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);
use target::Samba4;
sub new($$$$$) {
- my ($classname, $bindir, $binary_mapping, $bindir_path, $ldap, $srcdir, $exeext) = @_;
+ my ($classname, $bindir, $binary_mapping, $bindir_path, $ldap, $srcdir, $exeext, $server_maxtime) = @_;
my $self = {
- samba3 => new Samba3($bindir,$binary_mapping, $bindir_path, $srcdir, $exeext),
- samba4 => new Samba4($bindir,$binary_mapping, $bindir_path, $ldap, $srcdir, $exeext),
+ 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;
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;
$vars or return undef;
$self->check_or_start($vars,
- ($ENV{SMBD_MAXTIME} or 2700),
"yes", "yes", "yes");
if (not $self->wait_for_start($vars)) {
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;
$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;
$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;
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;
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...";
print("Skip nmbd received signal $signame");
exit 0;
};
- sleep($maxtime);
+ sleep($self->{server_maxtime});
exit 0;
}
$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});
}
print("Skip winbindd received signal $signame");
exit 0;
};
- sleep($maxtime);
+ sleep($self->{server_maxtime});
exit 0;
}
$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});
}
print("Skip smbd received signal $signame");
exit 0;
};
- sleep($maxtime);
+ sleep($self->{server_maxtime});
exit 0;
}
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});
}
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 = {
binary_mapping => $binary_mapping,
bindir_path => $bindir_path,
srcdir => $srcdir,
- exeext => $exeext
+ exeext => $exeext,
+ server_maxtime => $server_maxtime
};
bless $self;
return $self;
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});
}
my $optarg = "";
- if (defined($max_time)) {
- $optarg = "--maximum-runtime=$max_time ";
- }
+ $optarg = "--maximum-runtime=$self->{server_maxtime}";
if (defined($ENV{SAMBA_OPTIONS})) {
$optarg.= " $ENV{SAMBA_OPTIONS}";
}
my $env = $self->provision_member($path, $dc_vars);
if (defined $env) {
- $self->check_or_start($env, ($ENV{SMBD_MAXTIME} or 7500));
+ $self->check_or_start($env);
$self->wait_for_start($env);
my $env = $self->provision_rpc_proxy($path, $dc_vars);
if (defined $env) {
- $self->check_or_start($env, ($ENV{SMBD_MAXTIME} or 7500));
+ $self->check_or_start($env);
$self->wait_for_start($env);
my $env = $self->provision_dc($path);
if (defined $env) {
- $self->check_or_start($env,
- ($ENV{SMBD_MAXTIME} or 7500));
+ $self->check_or_start($env);
$self->wait_for_start($env);
my $env = $self->provision_fl2000dc($path);
if (defined $env) {
- $self->check_or_start($env,
- ($ENV{SMBD_MAXTIME} or 7500));
+ $self->check_or_start($env);
$self->wait_for_start($env);
my $env = $self->provision_fl2003dc($path);
if (defined $env) {
- $self->check_or_start($env,
- ($ENV{SMBD_MAXTIME} or 7500));
+ $self->check_or_start($env);
$self->wait_for_start($env);
my $env = $self->provision_fl2008r2dc($path);
if (defined $env) {
- $self->check_or_start($env,
- ($ENV{SMBD_MAXTIME} or 7500));
+ $self->check_or_start($env);
$self->wait_for_start($env);
my $env = $self->provision_vampire_dc($path, $dc_vars);
if (defined $env) {
- $self->check_or_start($env,
- ($ENV{SMBD_MAXTIME} or 7500));
+ $self->check_or_start($env);
$self->wait_for_start($env);
return undef;
}
- $self->check_or_start($env,
- ($ENV{SMBD_MAXTIME} or 7500));
+ $self->check_or_start($env);
$self->wait_for_start($env);