Author: metze Date: 2007-09-30 09:08:10 +0000 (Sun, 30 Sep 2007) New Revision: 25438
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25438 Log: start samba3's winbindd in the selftest "dc" env metze Modified: branches/SAMBA_4_0/source/selftest/env/Samba3.pm Changeset: Modified: branches/SAMBA_4_0/source/selftest/env/Samba3.pm =================================================================== --- branches/SAMBA_4_0/source/selftest/env/Samba3.pm 2007-09-30 09:07:07 UTC (rev 25437) +++ branches/SAMBA_4_0/source/selftest/env/Samba3.pm 2007-09-30 09:08:10 UTC (rev 25438) @@ -36,11 +36,14 @@ my $smbdpid = read_pid($envvars, "smbd"); my $nmbdpid = read_pid($envvars, "nmbd"); + my $winbinddpid = read_pid($envvars, "winbindd"); $self->stop_sig_term($smbdpid); $self->stop_sig_term($nmbdpid); + $self->stop_sig_term($winbinddpid); $self->stop_sig_kill($smbdpid); $self->stop_sig_kill($nmbdpid); + $self->stop_sig_kill($winbinddpid); return 0; } @@ -69,8 +72,13 @@ sub getlog_env($$) { my ($self, $envvars) = @_; + my $ret = ""; - return $self->getlog_env_app($envvars, "SMBD") . $self->getlog_env_app($envvars, "NMBD"); + $ret .= $self->getlog_env_app($envvars, "SMBD"); + $ret .= $self->getlog_env_app($envvars, "NMBD"); + $ret .= $self->getlog_env_app($envvars, "WINBINDD"); + + return $ret; } sub check_env($$) @@ -98,7 +106,10 @@ my $vars = $self->provision($path, "dc"); - $self->check_or_start($vars, ($ENV{NMBD_MAXTIME} or 2700), ($ENV{SMBD_MAXTIME} or 2700)); + $self->check_or_start($vars, + ($ENV{NMBD_MAXTIME} or 2700), + ($ENV{WINBINDD_MAXTIME} or 2700), + ($ENV{SMBD_MAXTIME} or 2700)); $self->wait_for_start($vars); @@ -140,7 +151,7 @@ } sub check_or_start($$$$) { - my ($self, $env_vars, $nmbd_maxtime, $smbd_maxtime) = @_; + my ($self, $env_vars, $nmbd_maxtime, $winbindd_maxtime, $smbd_maxtime) = @_; unlink($env_vars->{NMBD_TEST_LOG}); print "STARTING NMBD..."; @@ -148,20 +159,39 @@ if ($pid == 0) { open STDOUT, ">$env_vars->{NMBD_TEST_LOG}"; open STDERR, '>&STDOUT'; - + + $ENV{WINBINDD_SOCKET_DIR} = $env_vars->{WINBINDD_SOCKET_DIR}; + $ENV{MAKE_TEST_BINARY} = $self->binpath("nmbd"); exec($self->binpath("timelimit"), $nmbd_maxtime, $self->binpath("nmbd"), "-F", "-S", "-d0", "--no-process-group", "-s", $env_vars->{SERVERCONFFILE}) or die("Unable to start nmbd: $!"); } write_pid($env_vars, "nmbd", $pid); print "DONE\n"; + unlink($env_vars->{WINBINDD_TEST_LOG}); + print "STARTING WINBINDD..."; + my $pid = fork(); + if ($pid == 0) { + open STDOUT, ">$env_vars->{WINBINDD_TEST_LOG}"; + open STDERR, '>&STDOUT'; + + $ENV{WINBINDD_SOCKET_DIR} = $env_vars->{WINBINDD_SOCKET_DIR}; + + $ENV{MAKE_TEST_BINARY} = $self->binpath("winbindd"); + exec($self->binpath("timelimit"), $winbindd_maxtime, $self->binpath("winbindd"), "-F", "-S", "-d0", "--no-process-group", "-s", $env_vars->{SERVERCONFFILE}) or die("Unable to start winbindd: $!"); + } + write_pid($env_vars, "winbindd", $pid); + print "DONE\n"; + unlink($env_vars->{SMBD_TEST_LOG}); print "STARTING SMBD..."; $pid = fork(); if ($pid == 0) { open STDOUT, ">$env_vars->{SMBD_TEST_LOG}"; open STDERR, '>&STDOUT'; - + + $ENV{WINBINDD_SOCKET_DIR} = $env_vars->{WINBINDD_SOCKET_DIR}; + $ENV{MAKE_TEST_BINARY} = $self->binpath("smbd"); exec($self->binpath("timelimit"), $smbd_maxtime, $self->binpath("smbd"), "-F", "-S", "-d0" , "--no-process-group", "-s", $env_vars->{SERVERCONFFILE}) or die("Unable to start smbd: $!"); } @@ -216,6 +246,8 @@ my %ret = (); my $server = "localhost2"; my $server_ip = "127.0.0.2"; + my $domain = "SAMBA-TEST"; + my $username = `PATH=/usr/ucb:$ENV{PATH} whoami`; chomp $username; my $password = "test"; @@ -223,26 +255,40 @@ my $srcdir="$RealBin/.."; my $scriptdir="$srcdir/selftest"; my $prefix_abs = abs_path($prefix); - my $shrdir="$prefix_abs/tmp"; + + my @dirs = (); + + my $shrdir="$prefix_abs/share"; + push(@dirs,$shrdir); + my $libdir="$prefix_abs/lib"; + push(@dirs,$libdir); + my $piddir="$prefix_abs/pid"; - my $conffile="$libdir/server.conf"; + push(@dirs,$piddir); + my $privatedir="$prefix_abs/private"; + push(@dirs,$privatedir); + my $lockdir="$prefix_abs/lockdir"; + push(@dirs,$lockdir); + my $logdir="$prefix_abs/logs"; - my $domain = "SAMBA-TEST"; + push(@dirs,$logdir); + # this gets autocreated by winbindd + my $wbsockdir="$prefix_abs/winbindd"; + ## ## create the test directory layout ## mkdir($prefix_abs, 0777); print "CREATE TEST ENVIRONMENT IN '$prefix'..."; system("rm -rf $prefix_abs/*"); - mkdir($_, 0777) foreach($privatedir,$libdir,$piddir,$lockdir,$logdir); - my $tmpdir = "$prefix_abs/tmp"; - mkdir($tmpdir, 0777); - chmod 0777, $tmpdir; + mkdir($_, 0777) foreach(@dirs); + my $conffile="$libdir/server.conf"; + open(CONF, ">$conffile") or die("Unable to open $conffile"); print CONF " [global] @@ -283,8 +329,10 @@ print CONF " + winbindd:socket dir = $wbsockdir + [tmp] - path = $tmpdir + path = $shrdir read only = no smbd:sharedelay = 100000 map hidden = yes @@ -321,6 +369,7 @@ $ret{SERVER_IP} = $server_ip; $ret{NMBD_TEST_LOG} = "$prefix/nmbd_test.log"; + $ret{WINBINDD_TEST_LOG} = "$prefix/winbindd_test.log"; $ret{SMBD_TEST_LOG} = "$prefix/smbd_test.log"; $ret{SERVERCONFFILE} = $conffile; $ret{CONFIGURATION} ="-s $conffile"; @@ -330,6 +379,7 @@ $ret{NETBIOSNAME} = $server; $ret{PASSWORD} = $password; $ret{PIDDIR} = $piddir; + $ret{WINBINDD_SOCKET_DIR} = $wbsockdir; return \%ret; }