logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Authors

       Chad Granum <exodist@cpan.org>

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.

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.

Maintainers

       Chad Granum <exodist@cpan.org>

Name

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

Source

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

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"
           );

See Also