summaryrefslogtreecommitdiff
path: root/selftest
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2009-05-13 20:10:57 +0200
committerJelmer Vernooij <jelmer@samba.org>2009-06-03 16:26:30 +0200
commit1dac17f9413c028916946488f27db05ac2314bf6 (patch)
tree1eb0f664c186c36c57956bf3c66fbff326654d3b /selftest
parent641f8d62df2d7ba0e80f3c8d78c3f8185dcf7048 (diff)
downloadsamba-1dac17f9413c028916946488f27db05ac2314bf6.tar.gz
samba-1dac17f9413c028916946488f27db05ac2314bf6.tar.bz2
samba-1dac17f9413c028916946488f27db05ac2314bf6.zip
selftest: Factor generic functionality for buildfarm output into a
separate perl module.
Diffstat (limited to 'selftest')
-rw-r--r--selftest/BuildFarm.pm65
-rw-r--r--selftest/output/buildfarm.pm58
2 files changed, 88 insertions, 35 deletions
diff --git a/selftest/BuildFarm.pm b/selftest/BuildFarm.pm
new file mode 100644
index 0000000000..80a91ac154
--- /dev/null
+++ b/selftest/BuildFarm.pm
@@ -0,0 +1,65 @@
+#!/usr/bin/perl
+# Convenience functions for writing output expected by the buildfarm
+# Copyright (C) 2009 Jelmer Vernooij <jelmer@samba.org>
+# Published under the GNU GPL, v3 or later
+
+package BuildFarm;
+
+use Exporter;
+@ISA = qw(Exporter);
+@EXPORT_OK = qw(start_testsuite end_testsuite skip_testsuite summary);
+
+use strict;
+
+sub start_testsuite($$)
+{
+ my ($name, $duration) = @_;
+ my $out = "";
+
+ $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
+ $out .= "Running test $name (level 0 stdout)\n";
+ $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
+ $out .= scalar(localtime())."\n";
+ $out .= "SELFTEST RUNTIME: " . $duration . "s\n";
+ $out .= "NAME: $name\n";
+
+ print $out;
+}
+
+sub end_testsuite($$$$$)
+{
+ my ($name, $duration, $ok, $output, $reason) = @_;
+ my $out = "";
+
+ $out .= "TEST RUNTIME: " . $duration . "s\n";
+ if ($ok) {
+ $out .= "ALL OK\n";
+ } else {
+ $out .= "ERROR: $reason\n";
+ }
+ $out .= "==========================================\n";
+ if ($ok) {
+ $out .= "TEST PASSED: $name\n";
+ } else {
+ $out .= "TEST FAILED: $name (status $reason)\n";
+ }
+ $out .= "==========================================\n";
+
+ print $out;
+}
+
+sub skip_testsuite($)
+{
+ my ($name) = @_;
+
+ print "SKIPPED: $name\n";
+}
+
+sub summary($)
+{
+ my ($duration) = @_;
+
+ print "DURATION: " . $duration . " seconds\n";
+}
+
+1;
diff --git a/selftest/output/buildfarm.pm b/selftest/output/buildfarm.pm
index 77ea26621b..f4daf69010 100644
--- a/selftest/output/buildfarm.pm
+++ b/selftest/output/buildfarm.pm
@@ -24,6 +24,7 @@ use FindBin qw($RealBin);
use lib "$RealBin/..";
use Subunit qw(parse_results);
+use BuildFarm;
use strict;
@@ -31,30 +32,33 @@ sub new($$$) {
my ($class) = @_;
my $self = {
test_output => {},
- start_time => time()
+ last_time => 0,
+ start_time => undef,
};
bless($self, $class);
}
+sub report_time($$)
+{
+ my ($self, $time) = @_;
+
+ unless ($self->{start_time}) {
+ $self->{start_time} = $time;
+ }
+
+ $self->{last_time} = $time;
+}
+
sub start_testsuite($$)
{
my ($self, $name) = @_;
- my $out = "";
$self->{NAME} = $name;
- $self->{START_TIME} = time();
+ $self->{START_TIME} = $self->{last_time};
my $duration = $self->{START_TIME} - $self->{start_time};
- $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
- $out .= "Running test $name (level 0 stdout)\n";
- $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
- $out .= scalar(localtime())."\n";
- $out .= "SELFTEST RUNTIME: " . $duration . "s\n";
- $out .= "NAME: $name\n";
-
+ BuildFarm::start_testsuite($name, $duration);
$self->{test_output}->{$name} = "";
-
- print $out;
}
sub output_msg($$)
@@ -74,26 +78,10 @@ sub control_msg($$)
sub end_testsuite($$$$$$)
{
my ($self, $name, $result, $unexpected, $reason) = @_;
- my $out = "";
-
- $out .= "TEST RUNTIME: " . (time() - $self->{START_TIME}) . "s\n";
-
- if (not $unexpected) {
- $out .= "ALL OK\n";
- } else {
- $out .= "ERROR: $reason\n";
- $out .= $self->{test_output}->{$name};
- }
- $out .= "==========================================\n";
- if (not $unexpected) {
- $out .= "TEST PASSED: $name\n";
- } else {
- $out .= "TEST FAILED: $name (status $reason)\n";
- }
- $out .= "==========================================\n";
-
- print $out;
+ BuildFarm::end_testsuite($name, ($self->{last_time} - $self->{START_TIME}),
+ (not $unexpected), $self->{test_output}->{$name},
+ $reason);
}
sub start_test($$$)
@@ -121,15 +109,15 @@ sub end_test($$$$$)
sub summary($)
{
my ($self) = @_;
-
- print "DURATION: " . (time() - $self->{start_time}) . " seconds\n";
+
+ BuildFarm::summary($self->{last_time} - $self->{start_time});
}
-sub skip_testsuite($$$$)
+sub skip_testsuite($$$)
{
my ($self, $name, $reason) = @_;
- print "SKIPPED: $name\n";
+ BuildFarm::skip_testsuite($name);
}
1;