2 # Copyright (C) 2018 Red Hat, Inc.
4 # Author: Paolo Bonzini <pbonzini@redhat.com>
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2, or (at your option)
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <https://www.gnu.org/licenses/>.
19 # ---------------------------------- #
20 # Imports, static data, and setup. #
21 # ---------------------------------- #
23 use warnings FATAL
=> 'all';
28 my $ME = "tap-merge.pl";
29 my $VERSION = "2018-11-30";
31 my $HELP = "$ME: merge multiple TAP inputs from stdin.";
33 use constant DIAG_STRING
=> "#";
39 Getopt
::Long
::GetOptions
41 'help' => sub { print $HELP; exit 0; },
42 'version' => sub { print "$ME $VERSION\n"; exit 0; },
51 my $iterator = TAP
::Parser
::Iterator
::Stream
->new(\
*STDIN
);
52 my $parser = TAP
::Parser
->new ({iterator
=> $iterator });
53 my $testno = 0; # Number of test results seen so far.
54 my $bailed_out = 0; # Whether a "Bail out!" directive has been seen.
56 while (defined (my $cur = $parser->next))
61 print DIAG_STRING
. " " . $cur->as_string . "\n";
71 $bailed_out = 0 if $cur->number == 1;
73 $cur = TAP
::Parser
::Result
::Test
->new({
76 directive
=> $cur->directive,
77 explanation
=> $cur->explanation,
78 description
=> $cur->description
81 elsif ($cur->is_version)
85 print $cur->as_string . "\n" unless $bailed_out;
97 # perl-indent-level: 2
98 # perl-continued-statement-offset: 2
99 # perl-continued-brace-offset: 0
100 # perl-brace-offset: 0
101 # perl-brace-imaginary-offset: 0
102 # perl-label-offset: -2
103 # cperl-indent-level: 2
104 # cperl-brace-offset: 0
105 # cperl-continued-brace-offset: 0
106 # cperl-label-offset: -2
107 # cperl-extra-newline-before-brace: t
108 # cperl-merge-trailing-else: nil
109 # cperl-continued-statement-offset: 2