2 # Pretty-format subunit output
3 # Copyright (C) Jelmer Vernooij <jelmer@samba.org>
4 # Published under the GNU GPL, v3 or later
10 format-subunit [--format=<NAME>] [--immediate] < instream > outstream
14 Format the output of a subunit stream.
22 Show errors as soon as they happen rather than at the end of the test run.
24 =item I<--format>=FORMAT
26 Choose the format to print. Currently supported are plain, html or buildfarm.
30 GNU General Public License, version 3 or later.
34 Jelmer Vernooij <jelmer@samba.org>
40 use FindBin qw($RealBin $Script);
42 use Subunit qw(parse_results);
44 my $opt_format = "plain";
47 my $opt_immediate = 0;
50 my $result = GetOptions (
51 'help|h|?' => \$opt_help,
52 'format=s' => \$opt_format,
53 'verbose' => \$opt_verbose,
54 'immediate' => \$opt_immediate,
55 'prefix:s' => \$opt_prefix,
58 exit(1) if (not $result);
60 if (defined($ENV{RUN_FROM_BUILD_FARM}) and
61 ($ENV{RUN_FROM_BUILD_FARM} eq "yes")) {
62 $opt_format = "buildfarm";
70 TESTS_UNEXPECTED_OK => 0,
71 TESTS_EXPECTED_OK => 0,
72 TESTS_UNEXPECTED_FAIL => 0,
73 TESTS_EXPECTED_FAIL => 0,
78 if ($opt_format eq "buildfarm") {
79 require output::buildfarm;
80 $msg_ops = new output::buildfarm($statistics);
81 } elsif ($opt_format eq "plain") {
82 require output::plain;
83 $msg_ops = new output::plain("$opt_prefix/summary", $opt_verbose, $opt_immediate, $statistics, undef);
84 } elsif ($opt_format eq "html") {
86 mkdir("test-results", 0777);
87 $msg_ops = new output::html("test-results", $statistics);
88 } elsif ($opt_format eq "subunit") {
89 require output::subunit;
90 $msg_ops = new output::subunit();
92 die("Invalid output format '$opt_format'");
95 my $expected_ret = parse_results($msg_ops, $statistics, *STDIN);