Test2::Harness::Collector::TapParser(3pm)

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 2020 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/