Support reporting current time in selftest output.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 13 May 2009 17:57:58 +0000 (19:57 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Wed, 3 Jun 2009 14:26:30 +0000 (16:26 +0200)
selftest/output/html.pm
selftest/output/plain.pm
selftest/output/subunit.pm
selftest/selftest.pl

index e490765d06adee5ef53cf54ac0f3e43644a300fa..d4d8204ea889eb6393d1cfafbd10c1ada47b5e4d 100644 (file)
@@ -138,7 +138,7 @@ sub end_testsuite($$$$)
 
        print TEST "</table>\n";
 
 
        print TEST "</table>\n";
 
-       print TEST "<div class=\"duration\">Duration: " . (time() - $self->{START_TIME}) . "s</div>\n";
+       print TEST "<div class=\"duration\">Duration: " . ($self->{last_time} - $self->{START_TIME}) . "s</div>\n";
 
        $self->print_html_footer(*TEST);
 
 
        $self->print_html_footer(*TEST);
 
@@ -192,12 +192,18 @@ sub end_testsuite($$$$)
        print INDEX "</tr>\n";
 }
 
        print INDEX "</tr>\n";
 }
 
+sub report_time($$)
+{
+       my ($self, $time) = @_;
+       $self->{last_time} = $time;
+}
+
 sub start_test($$)
 {
        my ($self, $parents, $testname) = @_;
 
        if ($#$parents == -1) {
 sub start_test($$)
 {
        my ($self, $parents, $testname) = @_;
 
        if ($#$parents == -1) {
-               $self->{START_TIME} = time();
+               $self->{START_TIME} = $self->{last_time};
                $self->start_testsuite($testname);
                return;
        }
                $self->start_testsuite($testname);
                return;
        }
index 5312a9e27b3416463b47d7f9f057dd737293592f..26056038f53d0facf7c44fb35be83668343904f0 100644 (file)
@@ -29,7 +29,7 @@ sub new($$$$$$$) {
                verbose => $verbose, 
                immediate => $immediate, 
                statistics => $statistics,
                verbose => $verbose, 
                immediate => $immediate, 
                statistics => $statistics,
-               start_time => time(),
+               start_time => undef,
                test_output => {},
                suitesfailed => [],
                suites_ok => 0,
                test_output => {},
                suitesfailed => [],
                suites_ok => 0,
@@ -41,6 +41,15 @@ sub new($$$$$$$) {
        bless($self, $class);
 }
 
        bless($self, $class);
 }
 
+sub report_time($$)
+{
+       my ($self, $time) = @_;
+       unless ($self->{start_time}) {
+               $self->{start_time} = $time;
+       }
+       $self->{last_time} = $time;
+}
+
 sub output_msg($$);
 
 sub start_testsuite($$)
 sub output_msg($$);
 
 sub start_testsuite($$)
@@ -49,7 +58,7 @@ sub start_testsuite($$)
 
        $self->{index}++;
        $self->{NAME} = $name;
 
        $self->{index}++;
        $self->{NAME} = $name;
-       $self->{START_TIME} = time();
+       $self->{START_TIME} = $self->{last_time};
 
        my $duration = $self->{START_TIME} - $self->{start_time};
 
 
        my $duration = $self->{START_TIME} - $self->{start_time};
 
index 720fe7285cc09d3f47eeadbf1e5452cffd926740..e99b76c1b9d3c1a287c2f3f57ddc1ebba587653a 100644 (file)
@@ -33,6 +33,13 @@ sub new($) {
        bless($self, $class);
 }
 
        bless($self, $class);
 }
 
+sub report_time($$)
+{
+       my ($self, $time) = @_;
+       my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time);
+       printf "time: %04d-%02d-%02d %02d:%02d:%02dZ\n", $year+1900, $mon, $mday, $hour, $min, $sec;
+}
+
 sub start_testsuite($$)
 {
        my ($self, $name) = @_;
 sub start_testsuite($$)
 {
        my ($self, $name) = @_;
index 7e64208ff33626ac4e459e10ca7d7b16233bce90..b786c9a50f549d1bd15f0b3b080c4619696be25d 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 # Bootstrap Samba and run a number of tests against it.
 #!/usr/bin/perl
 # Bootstrap Samba and run a number of tests against it.
-# Copyright (C) 2005-2008 Jelmer Vernooij <jelmer@samba.org>
+# Copyright (C) 2005-2009 Jelmer Vernooij <jelmer@samba.org>
 # Copyright (C) 2007-2009 Stefan Metzmacher <metze@samba.org>
 
 # This program is free software; you can redistribute it and/or modify
 # Copyright (C) 2007-2009 Stefan Metzmacher <metze@samba.org>
 
 # This program is free software; you can redistribute it and/or modify
@@ -254,6 +254,7 @@ sub run_testsuite($$$$$$)
        my ($envname, $name, $cmd, $i, $totalsuites, $msg_ops) = @_;
        my $pcap_file = setup_pcap($name);
 
        my ($envname, $name, $cmd, $i, $totalsuites, $msg_ops) = @_;
        my $pcap_file = setup_pcap($name);
 
+       $msg_ops->report_time(time());
        $msg_ops->start_test([], $name);
 
        unless (open(RESULT, "$cmd 2>&1|")) {
        $msg_ops->start_test([], $name);
 
        unless (open(RESULT, "$cmd 2>&1|")) {
@@ -276,6 +277,7 @@ sub run_testsuite($$$$$$)
 
        my $exitcode = $? >> 8;
 
 
        my $exitcode = $? >> 8;
 
+       $msg_ops->report_time(time());
        if ($ret == 1) {
                $msg_ops->end_test([], $name, "success", $expected_ret != $ret, undef); 
        } else {
        if ($ret == 1) {
                $msg_ops->end_test([], $name, "success", $expected_ret != $ret, undef); 
        } else {
@@ -692,7 +694,7 @@ if ($opt_format eq "buildfarm") {
 } else {
        die("Invalid output format '$opt_format'");
 }
 } else {
        die("Invalid output format '$opt_format'");
 }
-
+$msg_ops->report_time(time());
 
 foreach (@available) {
        my $name = $$_[0];
 
 foreach (@available) {
        my $name = $$_[0];
@@ -886,7 +888,8 @@ $envvarstr
                
                my $envvars = setup_env($envname);
                if (not defined($envvars)) {
                
                my $envvars = setup_env($envname);
                if (not defined($envvars)) {
-                       $msg_ops->skip_testsuite($name, "unable to set up environment $envname");
+                       $msg_ops->skip_testsuite($name, 
+                               "unable to set up environment $envname");
                        next;
                }
 
                        next;
                }