selftest: Use standard subunit commands for progress reporting.
authorJelmer Vernooij <jelmer@samba.org>
Tue, 30 Mar 2010 12:30:08 +0000 (14:30 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Wed, 31 Mar 2010 00:20:08 +0000 (02:20 +0200)
selftest/Subunit.pm
selftest/selftest.pl

index 2a9fc0e48b8de8a982fe46bdd8b8dd7d843a0637..fce8d0854ac7031caae338eb95311f6a079ab60d 100644 (file)
@@ -176,6 +176,27 @@ sub report_time($)
        printf "time: %04d-%02d-%02d %02d:%02d:%02d\n", $year+1900, $mon+1, $mday, $hour, $min, $sec;
 }
 
+sub progress_pop()
+{
+       print "progress: pop\n";
+}
+
+sub progress_push()
+{
+       print "progress: push\n";
+}
+
+sub progress($;$)
+{
+       my ($count, $whence) = @_;
+
+       unless(defined($whence)) {
+               $whence = "";
+       }
+
+       print "progress: $whence$count\n";
+}
+
 # The following are Samba extensions:
 
 sub start_testsuite($)
index 7bbad62bbf8f2cb520d5c6ff6af193855495be61..462fa752bc34318901487998eb4abffdf6fac1c1 100755 (executable)
@@ -228,6 +228,7 @@ sub run_testsuite($$$$$)
        my ($envname, $name, $cmd, $i, $totalsuites) = @_;
        my $pcap_file = setup_pcap($name);
 
+       Subunit::progress_push();
        Subunit::start_testsuite($name);
        Subunit::report_time(time());
 
@@ -250,6 +251,7 @@ sub run_testsuite($$$$$)
        unless (close(RESULTS)) {
                if ($!) {
                        Subunit::end_testsuite($name, "error", "Unable to run $cmd: $!");
+                       Subunit::progress_pop();
                        return 0;
                } else {
                        $ret = $?;
@@ -258,6 +260,7 @@ sub run_testsuite($$$$$)
 
        if ($ret & 127) {
                Subunit::end_testsuite($name, "error", sprintf("Testsuite died with signal %d, %s coredump", ($ret & 127), ($ret & 128) ? "with": "without"));
+               Subunit::progress_pop();
                return 0;
        }
        my $envlog = getlog_env($envname);
@@ -276,6 +279,7 @@ sub run_testsuite($$$$$)
        } else {
                Subunit::end_testsuite($name, "failure", "Exit code was $exitcode");
        }
+       Subunit::progress_pop();
 
        cleanup_pcap($pcap_file, $exitcode);
 
@@ -685,6 +689,7 @@ foreach my $fn (@testlists) {
 }
 
 Subunit::testsuite_count($#available+1);
+Subunit::progress($#available+1);
 Subunit::report_time(time());
 
 foreach (@available) {