r25031: Use pointers to services rather than service numbers when possible.
[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 control_msg($$$)
45 {
46         my ($self, $state, $output) = @_;
47
48         $self->{test_output}->{$state->{NAME}} .= $output;
49 }
50
51 sub end_testsuite($$$$$)
52 {
53         my ($self, $state, $expected_ret, $ret, $envlog) = @_;
54         my $out = "";
55
56         $out .= "TEST RUNTIME: " . (time() - $state->{START_TIME}) . "s\n";
57
58         if ($ret == $expected_ret) {
59                 $out .= "ALL OK\n";
60         } else {
61                 $out .= "ERROR: $ret";
62                 $out .= $self->{test_output}->{$state->{NAME}};
63         }
64
65         $out .= "PCAP FILE: $state->{PCAP_FILE}\n" if defined($state->{PCAP_FILE});
66
67         $out .= $envlog;
68
69         $out .= "==========================================\n";
70         if ($ret == $expected_ret) {
71                 $out .= "TEST PASSED: $state->{NAME}\n";
72         } else {
73                 $out .= "TEST FAILED: $state->{NAME} (status $ret)\n";
74         }
75         $out .= "==========================================\n";
76
77         print $out;
78 }
79
80 sub start_test($$$)
81 {
82         my ($self, $state, $testname) = @_;
83 }
84
85 sub end_test($$$$$$)
86 {
87         my ($self, $state, $testname, $result, $expected, $reason) = @_;
88 }
89
90 sub summary($)
91 {
92         my ($self) = @_;
93 }
94
95 sub missing_env($$$)
96 {
97         my ($self, $name, $envname) = @_;
98
99         print "FAIL: $name (ENV[$envname] not available!)\n";
100 }
101
102 sub skip_testsuite($$$$)
103 {
104         my ($self, $envname, $name, $reason) = @_;
105
106         if ($reason) {
107                 print "SKIPPED: $name [$reason]\n";
108         } else {
109                 print "SKIPPED: $name\n";
110         }
111 }
112
113 1;