r22337: print out the smbd log output after each test
authorStefan Metzmacher <metze@samba.org>
Wed, 18 Apr 2007 14:02:26 +0000 (14:02 +0000)
committerStefan Metzmacher <metze@samba.org>
Wed, 18 Apr 2007 14:02:26 +0000 (14:02 +0000)
metze

source/script/tests/Samba3.pm
source/script/tests/Samba4.pm
source/script/tests/selftest.pl

index e133a6394e5c9cb615f47244d258878472651e0e..fa51dba3a2d6d002ff133465c8cb37a169ce516c 100644 (file)
@@ -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;
index fe8ed35ca3e1378d1e889cd346ea0bfa13ebe2f1..d0f66f1a8d7aabb225f641f2d88b2164cb492aab 100644 (file)
@@ -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") {
index d513147f0ef291c17b25f29463a61429554dd96b..da4f097701648f929859614d006aed3890bd07dd 100755 (executable)
@@ -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