Test::Smoke::Reporter - OO interface for handling the testresults (mktest.out)


    use Test::Smoke;
    use Test::Smoke::Reporter;

    my $reporter = Test::Smoke::Reporter->new( %args );
    $reporter->transport( $url );


Handle the parsing of the mktest.out file.


Test::Smoke::Reporter->new( %args )

[ Constructor | Public ]

Initialise a new object.


Accessor to the v attribute.

Test::Smoke::Reporter->config( $key[, $value] )

[ Accessor | Public ]

config() is an interface to the package lexical %CONFIG, which holds all the default values for the new() arguments.

With the special key all_defaults this returns a reference to a hash holding all the default values.

$self->read_parse( [$result_file] )

read_parse() reads the smokeresults file and parses it.

$self->_read( $nameorref )

_read() is a private method that handles the reading.

Reference to a SCALAR smokeresults are in $$nameorref
Reference to an ARRAY smokeresults are in @$nameorref
Reference to a GLOB smokeresults are read from the filehandle
Other values are taken as the filename for the smokeresults

$self->_parse( )

Interpret the contents of the outfile and prepare them for processing, so report can be made.

$self->_post_process( )

_post_process() sets up the report for easy printing. It needs to sort the buildenvironments, statusletters and test failures.


Returns strftime("%F %T %z").

__rm_common_args( $cfg, \%common )

Removes the the arguments stored as keys in %common from $cfg.


Return the contents of $self->{lfile} either by reading the file or returning the cached version.


Return the contents of $self->{outfile} either by reading the file or returning the cached version.

$reporter->write_to_file( [$name] )

Write the $self->report to file. If name is omitted it will use catfile( $self->{ddir}, $self->{rptfile} ).


Transport the report to the gateway. The transported data will also be stored locally in the file mktest.jsn

$reporter->report( )

Return a string with the full report


Return $self->{user_note} if exists.

Check if $self->{un_file} exists, and read contents into $self->{user_note}.

$reporter->ccinfo( )

Return the string containing the C-compiler info.


Return a section with the locally applied patches (from patchlevel.h).


Show indication of the options used for HARNESS_OPTIONS.

$reporter->user_skipped_tests( )

Show indication for the fact that the user requested to skip some tests.

$reporter->ccmessages( )

Use a port of Jarkko's grepccerr script to report the compiler messages.

$reporter->nonfatalmessages( )

Find failures worth reporting that won't cause tests to fail

$reporter->preamble( )

Returns the header of the report.

$reporter->smoke_matrix( )

smoke_matrix() returns a string with the result-letters and their configs.

$reporter->summary( )

Return the PASS or FAIL(x) string.

$reporter->has_test_failures( )

Returns true if @{ $reporter->{_failures}.

$reporter->failures( )

report the failures (grouped by configurations).

$reporter->has_todo_passed( )

Returns true if @{ $reporter->{_todo_pasesd}.

$reporter->todo_passed( )

report the todo that passed (grouped by configurations).

$reporter->has_mani_failures( )

Returns true if @{ $reporter->{_mani}.

$reporter->mani_fail( )

report the MANIFEST failures.

$reporter->bldenv_legend( )

Returns a string with the legend for build-environments

$reporter->letter_legend( )

Returns a string with the legend for the letters in the matrix.


Returns the signature for the e-mail message (starting with dash dash space newline) and some version numbers.




(c) 2002-2012, All rights reserved.

  * Abe Timmerman <>
  * H.Merijn Brand <>

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




This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.