r24345: Add --format=html option to selftest.
[kai/samba.git] / source4 / selftest / output / buildfarm.pm
1 #!/usr/bin/perl
2
3 package output::buildfarm;
4
5 use Exporter;
6 @ISA = qw(Exporter);
7
8 use strict;
9
10 sub new($$) {
11         my ($class) = @_;
12         my $self = { 
13                 start => time(),
14                 test_output => {}
15         };
16         bless($self, $class);
17 }
18
19 sub start_testsuite($$)
20 {
21         my ($self, $state) = @_;
22         my $out = "";
23
24         $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
25         $out .= "Running test $state->{NAME} (level 0 stdout)\n";
26         $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
27         $out .= scalar(localtime())."\n";
28         $out .= "SELFTEST RUNTIME: " . ($state->{START_TIME} - $self->{START_TIME}) . "s\n";
29         $out .= "NAME: $state->{NAME}\n";
30         $out .= "CMD: $state->{CMD}\n";
31
32         $self->{test_output}->{$state->{NAME}} = "";
33
34         print $out;
35 }
36
37 sub output_msg($$$)
38 {
39         my ($self, $state, $output) = @_;
40
41         $self->{test_output}->{$state->{NAME}} .= $output;
42 }
43
44 sub end_testsuite($$$$$)
45 {
46         my ($self, $state, $expected_ret, $ret, $envlog) = @_;
47         my $out = "";
48
49         $out .= "TEST RUNTIME: " . (time() - $state->{START_TIME}) . "s\n";
50
51         if ($ret == $expected_ret) {
52                 $out .= "ALL OK\n";
53         } else {
54                 $out .= "ERROR: $ret";
55                 $out .= $self->{test_output}->{$state->{NAME}};
56         }
57
58         $out .= "PCAP FILE: $state->{PCAP_FILE}\n" if defined($state->{PCAP_FILE});
59
60         $out .= $envlog;
61
62         $out .= "==========================================\n";
63         if ($ret == $expected_ret) {
64                 $out .= "TEST PASSED: $state->{NAME}\n";
65         } else {
66                 $out .= "TEST FAILED: $state->{NAME} (status $ret)\n";
67         }
68         $out .= "==========================================\n";
69
70         print $out;
71 }
72
73 sub start_test($$$)
74 {
75         my ($self, $state, $testname) = @_;
76 }
77
78 sub end_test($$$$$)
79 {
80         my ($self, $state, $testname, $result, $expected) = @_;
81 }
82
83 sub summary($)
84 {
85         my ($self) = @_;
86 }
87
88 sub missing_env($$$)
89 {
90         my ($self, $name, $envname) = @_;
91
92         print "FAIL: $name (ENV[$envname] not available!)\n";
93 }
94
95 sub skip_testsuite($$)
96 {
97         my ($self, $name) = @_;
98
99         print "SKIPPED: $name\n";
100 }
101
102 1;