diff options
-rw-r--r-- | source4/script/tests/Samba3.pm | 10 | ||||
-rw-r--r-- | source4/script/tests/Samba4.pm | 26 | ||||
-rwxr-xr-x | source4/script/tests/selftest.pl | 22 |
3 files changed, 53 insertions, 5 deletions
diff --git a/source4/script/tests/Samba3.pm b/source4/script/tests/Samba3.pm index e133a6394e5..fa51dba3a2d 100644 --- a/source4/script/tests/Samba3.pm +++ b/source4/script/tests/Samba3.pm @@ -39,6 +39,14 @@ sub teardown_env($$) return 0; } +sub getlog_env($$) +{ + my ($self, $envvars) = @_; + + # TODO... + return ""; +} + sub setup_env($$$) { my ($self, $envname, $path) = @_; @@ -292,6 +300,8 @@ sub wait_for_start($$) print "wait for smbd\n"; system($self->binpath("smbclient") ." $envvars->{CONFIGURATION} -L $envvars->{SERVER_IP} -U% -p 139 | head -2"); system($self->binpath("smbclient") ." $envvars->{CONFIGURATION} -L $envvars->{SERVER_IP} -U% -p 139 | head -2"); + + print $self->getlog_env($envvars); } 1; diff --git a/source4/script/tests/Samba4.pm b/source4/script/tests/Samba4.pm index fe8ed35ca3e..d0f66f1a8d7 100644 --- a/source4/script/tests/Samba4.pm +++ b/source4/script/tests/Samba4.pm @@ -141,6 +141,8 @@ sub wait_for_start($$) system("bin/nmblookup $testenv_vars->{CONFIGURATION} -U $testenv_vars->{SERVER} $testenv_vars->{NETBIOSNAME}"); system("bin/nmblookup $testenv_vars->{CONFIGURATION} $testenv_vars->{NETBIOSNAME}"); system("bin/nmblookup $testenv_vars->{CONFIGURATION} -U $testenv_vars->{SERVER} $testenv_vars->{NETBIOSNAME}"); + + print $self->getlog_env($testenv_vars); } sub write_ldb_file($$$) @@ -596,6 +598,7 @@ sub provision_member($$$) $ret->{SMBD_TEST_FIFO} = "$prefix/smbd_test.fifo"; $ret->{SMBD_TEST_LOG} = "$prefix/smbd_test.log"; + $ret->{SMBD_TEST_LOG_POS} = 0; return $ret; } @@ -612,6 +615,7 @@ sub provision_dc($$) $ret->{SMBD_TEST_FIFO} = "$prefix/smbd_test.fifo"; $ret->{SMBD_TEST_LOG} = "$prefix/smbd_test.log"; + $ret->{SMBD_TEST_LOG_POS} = 0; return $ret; } @@ -651,10 +655,30 @@ sub teardown_env($$) return $failed; } +sub getlog_env($$) +{ + my ($self, $envvars) = @_; + my $title = "SMBD LOG of: $envvars->{NETBIOSNAME}\n"; + my $out = $title; + + open(LOG, "<$envvars->{SMBD_TEST_LOG}"); + + seek(LOG, $envvars->{SMBD_TEST_LOG_POS}, SEEK_SET); + while (<LOG>) { + $out .= $_; + } + $envvars->{SMBD_TEST_LOG_POS} = tell(LOG); + close(LOG); + + return "" if $out eq $title; + + return $out; +} + sub setup_env($$$) { my ($self, $envname, $path) = @_; - + if ($envname eq "dc") { return $self->setup_dc("$path/dc"); } elsif ($envname eq "member") { diff --git a/source4/script/tests/selftest.pl b/source4/script/tests/selftest.pl index d513147f0ef..da4f0977016 100755 --- a/source4/script/tests/selftest.pl +++ b/source4/script/tests/selftest.pl @@ -174,6 +174,8 @@ sub skip($) return 0; } +sub getlog_env($); + my $test_output = {}; sub buildfarm_start_msg($) @@ -212,6 +214,8 @@ sub buildfarm_end_msg($$$) $out .= $test_output->{$state->{NAME}}; } + $out .= getlog_env($state->{ENVNAME}); + $out .= "==========================================\n"; if ($ret == $expected_ret) { $out .= "TEST PASSED: $state->{NAME}\n"; @@ -269,6 +273,8 @@ sub plain_end_msg($$$) if ($ret != $expected_ret and ($opt_immediate or $opt_one) and not $opt_verbose) { print $test_output->{$state->{NAME}}."\n"; } + + print getlog_env($state->{ENVNAME}); } my $plain_msg_ops = { @@ -277,10 +283,11 @@ my $plain_msg_ops = { end_msg => \&plain_end_msg }; -sub run_test($$$$$) +sub run_test($$$$$$) { - my ($name, $cmd, $i, $totalsuites, $msg_ops) = @_; + my ($envname, $name, $cmd, $i, $totalsuites, $msg_ops) = @_; my $msg_state = { + ENVNAME => $envname, NAME => $name, CMD => $cmd, INDEX => $i, @@ -644,6 +651,13 @@ sub setup_env($) return $testenv_vars; } +sub getlog_env($) +{ + my ($envname) = @_; + return "" if ($envname eq "none"); + return $target->getlog_env($running_envs{$envname}); +} + sub teardown_env($) { my ($envname) = @_; @@ -690,9 +704,9 @@ NETBIOSNAME=\$NETBIOSNAME\" && bash'"); SocketWrapper::setup_pcap($pcap_file) if ($opt_socket_wrapper_pcap); my $result; if ($from_build_farm) { - $result = run_test($name, $cmd, $i, $suitestotal, $buildfarm_msg_ops); + $result = run_test($envname, $name, $cmd, $i, $suitestotal, $buildfarm_msg_ops); } else { - $result = run_test($name, $cmd, $i, $suitestotal, $plain_msg_ops); + $result = run_test($envname, $name, $cmd, $i, $suitestotal, $plain_msg_ops); } if ($opt_socket_wrapper_pcap and $result and |