X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=selftest%2Ftarget%2FSamba4.pm;h=208824d6b2ca4969e0b23fd027dd180cd0b9e248;hb=52a49b448e4a9ccd3044b47a9efaf15f30fbd032;hp=9364008ee2fc6b70e8413587e406104e7fc5d7cd;hpb=2c8cf0b394e8625017a1290f73d0007d3b5b6d20;p=metze%2Fsamba%2Fwip.git diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm index 9364008ee2fc..208824d6b2ca 100644 --- a/selftest/target/Samba4.pm +++ b/selftest/target/Samba4.pm @@ -10,18 +10,26 @@ use Cwd qw(abs_path); use FindBin qw($RealBin); use POSIX; -sub new($$$$) { - my ($classname, $bindir, $ldap, $setupdir) = @_; +sub new($$$$$) { + my ($classname, $bindir, $ldap, $setupdir, $exeext) = @_; + $exeext = "" unless defined($exeext); my $self = { vars => {}, ldap => $ldap, bindir => $bindir, - setupdir => $setupdir + setupdir => $setupdir, + exeext => $exeext }; bless $self; return $self; } +sub bindir_path($$) { + my ($self, $path) = @_; + + return "$self->{bindir}/$path$self->{exeext}"; +} + sub openldap_start($$$) { my ($slapd_conf, $uri, $logs) = @_; my $oldpath = $ENV{PATH}; @@ -32,7 +40,7 @@ sub openldap_start($$$) { $olpath = "$olroot/libexec:$olroot/sbin:"; } $ENV{PATH} = "$olpath/usr/local/sbin:/usr/sbin:/sbin:$ENV{PATH}"; - system("slapd -d63 -f $slapd_conf -h $uri > $logs 2>&1 &"); + system("slapd -d0 -f $slapd_conf -h $uri > $logs 2>&1 &"); $ENV{PATH} = $oldpath; } @@ -50,7 +58,8 @@ sub slapd_start($$) } elsif ($self->{ldap} eq "openldap") { openldap_start($env_vars->{SLAPD_CONF}, $uri, "$env_vars->{LDAPDIR}/logs"); } - while (system("$self->{bindir}/ldbsearch -H $uri -s base -b \"\" supportedLDAPVersion > /dev/null") != 0) { + my $ldbsearch = $self->bindir_path("ldbsearch"); + while (system("$ldbsearch -H $uri -s base -b \"\" supportedLDAPVersion > /dev/null") != 0) { $count++; if ($count > 40) { $self->slapd_stop($env_vars); @@ -116,20 +125,21 @@ sub check_or_start($$$) if (defined($ENV{SMBD_OPTIONS})) { $optarg.= " $ENV{SMBD_OPTIONS}"; } - my $ret = system("$valgrind $self->{bindir}/samba $optarg $env_vars->{CONFIGURATION} -M single -i --leak-report-full"); + my $samba = $self->bindir_path("samba"); + my $ret = system("$valgrind $samba $optarg $env_vars->{CONFIGURATION} -M single -i --leak-report-full"); if ($? == -1) { - print "Unable to start samba: $ret: $!\n"; + print "Unable to start $samba: $ret: $!\n"; exit 1; } unlink($env_vars->{SMBD_TEST_FIFO}); my $exit = $? >> 8; if ( $ret == 0 ) { - print "samba exits with status $exit\n"; + print "$samba exits with status $exit\n"; } elsif ( $ret & 127 ) { - print "samba got signal ".($ret & 127)." and exits with $exit!\n"; + print "$samba got signal ".($ret & 127)." and exits with $exit!\n"; } else { $ret = $? >> 8; - print "samba failed with status $exit!\n"; + print "$samba failed with status $exit!\n"; } exit $exit; } @@ -169,7 +179,8 @@ sub write_ldb_file($$$) { my ($self, $file, $ldif) = @_; - open(LDIF, "|$self->{bindir}/ldbadd -H $file >/dev/null"); + my $ldbadd = $self->bindir_path("ldbadd"); + open(LDIF, "|$ldbadd -H $file >/dev/null"); print LDIF $ldif; return close(LDIF); } @@ -509,7 +520,6 @@ sub provision($$$$$$) my $unix_uid = $>; my $unix_gids_str = $); my @unix_gids = split(" ", $unix_gids_str); - my $srcdir="$RealBin/.."; -d $prefix or mkdir($prefix, 0777) or die("Unable to create $prefix"); my $prefix_abs = abs_path($prefix); my $tmpdir = "$prefix_abs/tmp"; @@ -562,7 +572,7 @@ sub provision($$$$$$) name resolve order = bcast interfaces = $interfaces tls dh params file = $tlsdir/dhparms.pem - panic action = $srcdir/script/gdb_backtrace \%PID% \%PROG% + panic action = $RealBin/gdb_backtrace \%PID% \%PROG% wins support = yes server role = $server_role max xmit = 32K @@ -572,6 +582,7 @@ sub provision($$$$$$) #We don't want to pass our self-tests if the PAC code is wrong gensec:require_pac = true log level = $server_loglevel + lanman auth = Yes [tmp] path = $tmpdir @@ -689,12 +700,13 @@ nogroup:x:65534:nobody close(GRP); #Ensure the config file is valid before we start - if (system("$self->{bindir}/testparm $configuration -v --suppress-prompt >/dev/null 2>&1") != 0) { - system("$self->{bindir}/testparm -v --suppress-prompt $configuration >&2"); - die("Failed to create a valid smb.conf configuration!"); + my $testparm = $self->bindir_path("testparm"); + if (system("$testparm $configuration -v --suppress-prompt >/dev/null 2>&1") != 0) { + system("$testparm -v --suppress-prompt $configuration >&2"); + die("Failed to create a valid smb.conf configuration $testparm!"); } - (system("($self->{bindir}/testparm $configuration -v --suppress-prompt --parameter-name=\"netbios name\" --section-name=global 2> /dev/null | grep -i \"^$netbiosname\" ) >/dev/null 2>&1") == 0) or die("Failed to create a valid smb.conf configuration! $self->{bindir}/testparm $configuration -v --suppress-prompt --parameter-name=\"netbios name\" --section-name=global"); + (system("($testparm $configuration -v --suppress-prompt --parameter-name=\"netbios name\" --section-name=global 2> /dev/null | grep -i \"^$netbiosname\" ) >/dev/null 2>&1") == 0) or die("Failed to create a valid smb.conf configuration! $self->{bindir}/testparm $configuration -v --suppress-prompt --parameter-name=\"netbios name\" --section-name=global"); my @provision_options = (); push (@provision_options, "NSS_WRAPPER_PASSWD=\"$nsswrap_passwd\""); @@ -739,10 +751,14 @@ nogroup:x:65534:nobody WINBINDD_SOCKET_DIR => $winbindd_socket_dir, NCALRPCDIR => $ncalrpcdir, LOCKDIR => $lockdir, + SERVERCONFFILE => $conffile, CONFIGURATION => $configuration, SOCKET_WRAPPER_DEFAULT_IFACE => $swiface, NSS_WRAPPER_PASSWD => $nsswrap_passwd, NSS_WRAPPER_GROUP => $nsswrap_group, + SMBD_TEST_FIFO => "$prefix/smbd_test.fifo", + SMBD_TEST_LOG => "$prefix/smbd_test.log", + SMBD_TEST_LOG_POS => 0, }; if (defined($self->{ldap})) { @@ -791,18 +807,15 @@ sub provision_member($$$) $ret or die("Unable to provision"); + my $net = $self->bindir_path("net"); my $cmd = ""; $cmd .= "SOCKET_WRAPPER_DEFAULT_IFACE=\"$ret->{SOCKET_WRAPPER_DEFAULT_IFACE}\" "; $cmd .= "KRB5_CONFIG=\"$ret->{KRB5_CONFIG}\" "; - $cmd .= "$self->{bindir}/net join $ret->{CONFIGURATION} $dcvars->{DOMAIN} member"; + $cmd .= "$net join $ret->{CONFIGURATION} $dcvars->{DOMAIN} member"; $cmd .= " -U$dcvars->{USERNAME}\%$dcvars->{PASSWORD}"; system($cmd) == 0 or die("Join failed\n$cmd"); - $ret->{SMBD_TEST_FIFO} = "$prefix/smbd_test.fifo"; - $ret->{SMBD_TEST_LOG} = "$prefix/smbd_test.log"; - $ret->{SMBD_TEST_LOG_POS} = 0; - $ret->{DC_SERVER} = $dcvars->{SERVER}; $ret->{DC_SERVER_IP} = $dcvars->{SERVER_IP}; $ret->{DC_NETBIOSNAME} = $dcvars->{NETBIOSNAME}; @@ -828,9 +841,6 @@ sub provision_dc($$) $self->add_wins_config("$prefix/private") or die("Unable to add wins configuration"); - $ret->{SMBD_TEST_FIFO} = "$prefix/server_test.fifo"; - $ret->{SMBD_TEST_LOG} = "$prefix/server_test.log"; - $ret->{SMBD_TEST_LOG_POS} = 0; return $ret; }