#!/usr/bin/perl # Pretty-format subunit output # Copyright (C) Jelmer Vernooij # Published under the GNU GPL, v3 or later =pod =head1 NAME format-subunit [--immediate] < instream > outstream =head1 SYNOPSIS Format the output of a subunit stream. =head1 OPTIONS =over 4 =item I<--immediate> Show errors as soon as they happen rather than at the end of the test run. =head1 LICENSE GNU General Public License, version 3 or later. =head1 AUTHOR Jelmer Vernooij =cut use Getopt::Long; use strict; use FindBin qw($RealBin $Script); use lib "$RealBin"; use Subunit qw(parse_results); my $opt_help = undef; my $opt_verbose = 0; my $opt_immediate = 0; my $opt_prefix = "."; my $result = GetOptions ( 'help|h|?' => \$opt_help, 'verbose' => \$opt_verbose, 'immediate' => \$opt_immediate, 'prefix:s' => \$opt_prefix, ); exit(1) if (not $result); my $msg_ops; # we want unbuffered output $| = 1; my $statistics = { SUITES_FAIL => 0, TESTS_UNEXPECTED_OK => 0, TESTS_EXPECTED_OK => 0, TESTS_UNEXPECTED_FAIL => 0, TESTS_EXPECTED_FAIL => 0, TESTS_ERROR => 0, TESTS_SKIP => 0, }; require output::plain; $msg_ops = new output::plain("$opt_prefix/summary", $opt_verbose, $opt_immediate, $statistics, undef); my $expected_ret = parse_results($msg_ops, $statistics, *STDIN); $msg_ops->summary(); exit($expected_ret);