The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Test2::Harness::Collector::TapParser - Produce EventFacets from a line of TAP.

DESCRIPTION

This module is responsible for reading and processing any TAP output from tests. Lines of TAP output are processed into Test2::Event facet data. Note that Test2 -> TAP -> Test2 is lossy at the Test2 -> TAP step.

SYNOPSIS

use Test2::Harness::Collector::TapParser qw/parse_tap_line/;

my $facet_data = parse_tap_line("1..1");
is(
    $facet_data,
    {
        trace => {nested => 0},
        hubs  => [{nested => 0}],
        plan  => {
            details => '',
            count   => 1,
            skip    => 0,
        },
    },
    "Parsed the plan"
);

$facet_data = parse_tap_line("# foo");
is(
    $facet_data,
{
          trace => { nested => 0 },
          hubs => [ { nested => 0 } ],
          info => [
                      {
                        tag => 'NOTE',
                        details => 'foo',
                        debug => 0,
                      },
                    ],
        },

    "Parsed the note"
);

$facet_data = parse_tap_line("ok 1");
is(
    $facet_data,
    {
        trace  => {nested => 0},
        hubs   => [{nested => 0}],
        assert => {
            no_debug => 1,
            pass     => 1,
            number   => '1',
            details  => '',
        },
    },
    "Parsed the assertion"
);

EXPORTS

$facet_data = parse_tap_line($line)

Parse a line of TAP. It is assumed to be STDOUT thus all comments are turned into notes. Using this export will NOT add the usual from_tap facet. It is better to use one of the other 2 exports.

$facet_data = parse_stdout_tap($line)

Parse a line of TAP from stdout.

$facet_data = parse_stderr_tap($line)

Parse a line of TAP from stderr. This will ONLY parse comment lines (ones that start with a #, which may be indented). All comments will be treated as diag's, all other lines will be ignored.

SOURCE

The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT

Copyright Chad Granum <exodist7@gmail.com>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://dev.perl.org/licenses/