Test::Harness::Straps

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
Test::Harness::StrapsUser Contributed Perl DocumentatTest::Harness::Straps(3)



NAME
       Test::Harness::Straps - detailed analysis of test results

SYNOPSIS
	 use Test::Harness::Straps;

	 my $strap = Test::Harness::Straps->new;

	 # Various ways to interpret a test
	 my $results = $strap->analyze($name, \@test_output);
	 my $results = $strap->analyze_fh($name, $test_filehandle);
	 my $results = $strap->analyze_file($test_file);

	 # UNIMPLEMENTED
	 my %total = $strap->total_results;

	 # Altering the behavior of the strap  UNIMPLEMENTED
	 my $verbose_output = $strap->dump_verbose();
	 $strap->dump_verbose_fh($output_filehandle);

DESCRIPTION
       THIS IS ALPHA SOFTWARE in that the interface is subject to change in
       incompatible ways.  It is otherwise stable.

       Test::Harness is limited to printing out its results.  This makes
       analysis of the test results difficult for anything but a human.	 To
       make it easier for programs to work with test results, we provide
       Test::Harness::Straps.  Instead of printing the results, straps pro-
       vide them as raw data.  You can also configure how the tests are to be
       run.

       The interface is currently incomplete.  Please contact the author if
       you’d like a feature added or something change or just have comments.

CONSTRUCTION
       new()

	 my $strap = Test::Harness::Straps->new;

       Initialize a new strap.

	 $strap->_init;

       Initialize the internal state of a strap to make it ready for parsing.

ANALYSIS
       $strap->analyze( $name, \@output_lines )

	   my $results = $strap->analyze($name, \@test_output);

       Analyzes the output of a single test, assigning it the given $name for
       use in the total report.	 Returns the $results of the test.  See
       Results.

       @test_output should be the raw output from the test, including new-
       lines.

	   my $results = $strap->analyze_fh($name, $test_filehandle);

       Like "analyze", but it reads from the given filehandle.

       $strap->analyze_file( $test_file )

	   my $results = $strap->analyze_file($test_file);

       Like "analyze", but it runs the given $test_file and parses its
       results.	 It will also use that name for the total report.

       Returns the full command line that will be run to test $file.

       Returns the command that runs the test.	Combine this with
       "_switches()" to build a command line.

       Typically this is $^X, but you can set $ENV{HARNESS_PERL} to use a
       different Perl than what you’re running the harness under.  This might
       be to run a threaded Perl, for example.

       You can also overload this method if you’ve built your own strap sub-
       class, such as a PHP interpreter for a PHP-based strap.

       Formats and returns the switches necessary to run the test.

       Returns only defined, non-blank, trimmed switches from the parms
       passed.

	 local $ENV{PERL5LIB} = $self->_INC2PERL5LIB;

       Takes the current value of @INC and turns it into something suitable
       for putting onto "PERL5LIB".

	 my @filtered_inc = $self->_filtered_INC;

       Shortens @INC by removing redundant and unnecessary entries.  Neces-
       sary for OSes with limited command line lengths, like VMS.

	 $self->_restore_PERL5LIB;

       This restores the original value of the "PERL5LIB" environment vari-
       able.  Necessary on VMS, otherwise a no-op.

Parsing
       Methods for identifying what sort of line you’re looking at.

	   my $is_diagnostic = $strap->_is_diagnostic($line, \$comment);

       Checks if the given line is a comment.  If so, it will place it into
       $comment (sans #).

	 my $is_header = $strap->_is_header($line);

       Checks if the given line is a header (1..M) line.  If so, it places
       how many tests there will be in "$strap->{max}", a list of which tests
       are todo in "$strap->{todo}" and if the whole test was skipped
       "$strap->{skip_all}" contains the reason.

	 my $is_bail_out = $strap->_is_bail_out($line, \$reason);

       Checks if the line is a "Bail out!".  Places the reason for bailing
       (if any) in $reason.

	 $strap->_reset_file_state;

       Resets things like "$strap->{max}" , "$strap->{skip_all}", etc. so
       it’s ready to parse the next file.

EXAMPLES
       See examples/mini_harness.plx for an example of use.

AUTHOR
       Michael G Schwern "<schwern at pobox.com>", currently maintained by
       Andy Lester "<andy at petdance.com>".

SEE ALSO
       Test::Harness



perl v5.8.8			  2006-06-29	     Test::Harness::Straps(3)