15759b3d2Safresh1package Test::Builder::Formatter; 25759b3d2Safresh1use strict; 35759b3d2Safresh1use warnings; 45759b3d2Safresh1 5*5486feefSafresh1our $VERSION = '1.302199'; 65759b3d2Safresh1 75759b3d2Safresh1BEGIN { require Test2::Formatter::TAP; our @ISA = qw(Test2::Formatter::TAP) } 85759b3d2Safresh1 95759b3d2Safresh1use Test2::Util::HashBase qw/no_header no_diag/; 105759b3d2Safresh1 115759b3d2Safresh1BEGIN { 125759b3d2Safresh1 *OUT_STD = Test2::Formatter::TAP->can('OUT_STD'); 135759b3d2Safresh1 *OUT_ERR = Test2::Formatter::TAP->can('OUT_ERR'); 145759b3d2Safresh1 155759b3d2Safresh1 my $todo = OUT_ERR() + 1; 165759b3d2Safresh1 *OUT_TODO = sub() { $todo }; 175759b3d2Safresh1} 185759b3d2Safresh1 195759b3d2Safresh1sub init { 205759b3d2Safresh1 my $self = shift; 215759b3d2Safresh1 $self->SUPER::init(@_); 225759b3d2Safresh1 $self->{+HANDLES}->[OUT_TODO] = $self->{+HANDLES}->[OUT_STD]; 235759b3d2Safresh1} 245759b3d2Safresh1 255759b3d2Safresh1sub plan_tap { 265759b3d2Safresh1 my ($self, $f) = @_; 275759b3d2Safresh1 285759b3d2Safresh1 return if $self->{+NO_HEADER}; 295759b3d2Safresh1 return $self->SUPER::plan_tap($f); 305759b3d2Safresh1} 315759b3d2Safresh1 325759b3d2Safresh1sub debug_tap { 335759b3d2Safresh1 my ($self, $f, $num) = @_; 345759b3d2Safresh1 return if $self->{+NO_DIAG}; 355759b3d2Safresh1 my @out = $self->SUPER::debug_tap($f, $num); 36de8cc8edSafresh1 $self->redirect(\@out) if @out && ref $f->{about} && defined $f->{about}->{package} 37de8cc8edSafresh1 && $f->{about}->{package} eq 'Test::Builder::TodoDiag'; 385759b3d2Safresh1 return @out; 395759b3d2Safresh1} 405759b3d2Safresh1 415759b3d2Safresh1sub info_tap { 425759b3d2Safresh1 my ($self, $f) = @_; 435759b3d2Safresh1 return if $self->{+NO_DIAG}; 445759b3d2Safresh1 my @out = $self->SUPER::info_tap($f); 45de8cc8edSafresh1 $self->redirect(\@out) if @out && ref $f->{about} && defined $f->{about}->{package} 46de8cc8edSafresh1 && $f->{about}->{package} eq 'Test::Builder::TodoDiag'; 475759b3d2Safresh1 return @out; 485759b3d2Safresh1} 495759b3d2Safresh1 505759b3d2Safresh1sub redirect { 515759b3d2Safresh1 my ($self, $out) = @_; 525759b3d2Safresh1 $_->[0] = OUT_TODO for @$out; 535759b3d2Safresh1} 545759b3d2Safresh1 555759b3d2Safresh1sub no_subtest_space { 1 } 565759b3d2Safresh1 575759b3d2Safresh11; 585759b3d2Safresh1 595759b3d2Safresh1__END__ 605759b3d2Safresh1 615759b3d2Safresh1=pod 625759b3d2Safresh1 635759b3d2Safresh1=encoding UTF-8 645759b3d2Safresh1 655759b3d2Safresh1=head1 NAME 665759b3d2Safresh1 675759b3d2Safresh1Test::Builder::Formatter - Test::Builder subclass of Test2::Formatter::TAP 685759b3d2Safresh1 695759b3d2Safresh1=head1 DESCRIPTION 705759b3d2Safresh1 715759b3d2Safresh1This is what takes events and turns them into TAP. 725759b3d2Safresh1 735759b3d2Safresh1=head1 SYNOPSIS 745759b3d2Safresh1 755759b3d2Safresh1 use Test::Builder; # Loads Test::Builder::Formatter for you 765759b3d2Safresh1 775759b3d2Safresh1=head1 SOURCE 785759b3d2Safresh1 795759b3d2Safresh1The source code repository for Test2 can be found at 80*5486feefSafresh1L<https://github.com/Test-More/test-more/>. 815759b3d2Safresh1 825759b3d2Safresh1=head1 MAINTAINERS 835759b3d2Safresh1 845759b3d2Safresh1=over 4 855759b3d2Safresh1 865759b3d2Safresh1=item Chad Granum E<lt>exodist@cpan.orgE<gt> 875759b3d2Safresh1 885759b3d2Safresh1=back 895759b3d2Safresh1 905759b3d2Safresh1=head1 AUTHORS 915759b3d2Safresh1 925759b3d2Safresh1=over 4 935759b3d2Safresh1 945759b3d2Safresh1=item Chad Granum E<lt>exodist@cpan.orgE<gt> 955759b3d2Safresh1 965759b3d2Safresh1=back 975759b3d2Safresh1 985759b3d2Safresh1=head1 COPYRIGHT 995759b3d2Safresh1 100256a93a4Safresh1Copyright 2020 Chad Granum E<lt>exodist@cpan.orgE<gt>. 1015759b3d2Safresh1 1025759b3d2Safresh1This program is free software; you can redistribute it and/or 1035759b3d2Safresh1modify it under the same terms as Perl itself. 1045759b3d2Safresh1 105*5486feefSafresh1See L<https://dev.perl.org/licenses/> 1065759b3d2Safresh1 1075759b3d2Safresh1=cut 108