summaryrefslogtreecommitdiff
path: root/selftest/output/buildfarm.pm
diff options
context:
space:
mode:
Diffstat (limited to 'selftest/output/buildfarm.pm')
-rw-r--r--selftest/output/buildfarm.pm120
1 files changed, 120 insertions, 0 deletions
diff --git a/selftest/output/buildfarm.pm b/selftest/output/buildfarm.pm
new file mode 100644
index 0000000000..cee6c1e63a
--- /dev/null
+++ b/selftest/output/buildfarm.pm
@@ -0,0 +1,120 @@
+#!/usr/bin/perl
+
+package output::buildfarm;
+
+use Exporter;
+@ISA = qw(Exporter);
+
+use FindBin qw($RealBin);
+use lib "$RealBin/..";
+
+use Subunit qw(parse_results);
+
+use strict;
+
+sub new($$$) {
+ my ($class) = @_;
+ my $self = {
+ test_output => {},
+ start_time => time()
+ };
+ bless($self, $class);
+}
+
+sub start_testsuite($$)
+{
+ my ($self, $name) = @_;
+ my $out = "";
+
+ $self->{NAME} = $name;
+ $self->{START_TIME} = 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";
+
+ $self->{test_output}->{$name} = "";
+
+ print $out;
+}
+
+sub output_msg($$)
+{
+ my ($self, $output) = @_;
+
+ $self->{test_output}->{$self->{NAME}} .= $output;
+}
+
+sub control_msg($$)
+{
+ my ($self, $output) = @_;
+
+ $self->{test_output}->{$self->{NAME}} .= $output;
+}
+
+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;
+}
+
+sub start_test($$$)
+{
+ my ($self, $parents, $testname) = @_;
+
+ if ($#$parents == -1) {
+ $self->start_testsuite($testname);
+ }
+}
+
+sub end_test($$$$$)
+{
+ my ($self, $parents, $testname, $result, $unexpected, $reason) = @_;
+
+ if ($unexpected) {
+ $self->{test_output}->{$self->{NAME}} .= "UNEXPECTED($result): $testname\n";
+ }
+
+ if ($#$parents == -1) {
+ $self->end_testsuite($testname, $result, $unexpected, $reason);
+ }
+}
+
+sub summary($)
+{
+ my ($self) = @_;
+
+ print "DURATION: " . (time() - $self->{start_time}) . " seconds\n";
+}
+
+sub skip_testsuite($$$$)
+{
+ my ($self, $name, $reason) = @_;
+
+ print "SKIPPED: $name\n";
+}
+
+1;