2 # Buildfarm output for selftest
3 # Copyright (C) 2008 Jelmer Vernooij <jelmer@samba.org>
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package output
::buildfarm
;
23 use FindBin
qw($RealBin);
24 use lib "$RealBin/..";
26 use Subunit qw(parse_results);
39 sub start_testsuite
($$)
41 my ($self, $name) = @_;
44 $self->{NAME
} = $name;
45 $self->{START_TIME
} = time();
47 my $duration = $self->{START_TIME
} - $self->{start_time
};
48 $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
49 $out .= "Running test $name (level 0 stdout)\n";
50 $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
51 $out .= scalar(localtime())."\n";
52 $out .= "SELFTEST RUNTIME: " . $duration . "s\n";
53 $out .= "NAME: $name\n";
55 $self->{test_output
}->{$name} = "";
62 my ($self, $output) = @_;
64 $self->{test_output
}->{$self->{NAME
}} .= $output;
69 my ($self, $output) = @_;
71 $self->{test_output
}->{$self->{NAME
}} .= $output;
74 sub end_testsuite
($$$$$$)
76 my ($self, $name, $result, $unexpected, $reason) = @_;
79 $out .= "TEST RUNTIME: " . (time() - $self->{START_TIME
}) . "s\n";
81 if (not $unexpected) {
84 $out .= "ERROR: $reason\n";
85 $out .= $self->{test_output
}->{$name};
88 $out .= "==========================================\n";
89 if (not $unexpected) {
90 $out .= "TEST PASSED: $name\n";
92 $out .= "TEST FAILED: $name (status $reason)\n";
94 $out .= "==========================================\n";
101 my ($self, $parents, $testname) = @_;
103 if ($#$parents == -1) {
104 $self->start_testsuite($testname);
110 my ($self, $parents, $testname, $result, $unexpected, $reason) = @_;
113 $self->{test_output
}->{$self->{NAME
}} .= "UNEXPECTED($result): $testname\n";
116 if ($#$parents == -1) {
117 $self->end_testsuite($testname, $result, $unexpected, $reason);
125 print "DURATION: " . (time() - $self->{start_time
}) . " seconds\n";
128 sub skip_testsuite
($$$$)
130 my ($self, $name, $reason) = @_;
132 print "SKIPPED: $name\n";