Test::Smoke::Smoker(3)User Contributed Perl DocumentatioTest::Smoke::Smoker(3)NAMETest::Smoke::Smoker - OO interface to do one smoke cycle.
SYNOPSIS
use Test::Smoke;
use Test::Smoke::Smoker;
open LOGFILE, "> mktest.out" or die "Cannot create 'mktest.out': $!";
my $buildcfg = Test::SmokeBuildCFG->new( $conf->{cfg} );
my $policy = Test::Smoke::Policy->new( '../', $conf->{v} );
my $smoker = Test::Smoke::Smoker->new( \*LOGFILE, $conf );
foreach my $config ( $buildcfg->configurations ) {
$smoker->smoke( $config, $policy );
}
DESCRIPTIONMETHODS
Test::Smoke::Smoker->new( \*GLOB, %args )
"new()" takes a mandatory (opened) filehandle and some other
options:
ddir build directory
fdir The forest source
v verbose level: 0..2
defaultenv 'make test' without $ENV{PERLIO}
is56x skip the PerlIO stuff?
locale do another testrun with $ENV{LC_ALL}
force_c_locale set $ENV{LC_ALL} = 'C' for all smoke runs
is_win32 is this MSWin32?
w32cc the CCTYPE for MSWin32 (MSVCxx BORLAND GCC)
w32make the maker to use for CCTYPE
Test::Smoke::Smoker->config( $key[, $value] )
"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.
$smoker->tty( $message )
Prints a message to the default filehandle.
$smoker->log( $message )
Prints a message to the logfile, filehandle.
$smoker->ttylog( $message )
Prints a message to both the default and the logfile filehandles.
$smoker->smoke( $config[, $policy] )
"smoke()" takes a Test::Smoke::BuildCFG::Config object and runs all
the basic steps as (private) object methods.
$smoker->make_distclean( )
"make_distclean()" runs "make -i distclean 2>/dev/null"
$smoker->extra_manicheck( )
"extra_manicheck()" will only work for "$self->{v} > 1" and does an
extra integrity check comparing MANIFEST and the source-tree.
Output is send to the tty.
$smoker->handle_policy( $policy, @substs );
"handle_policy()" will try to apply the substition rules and then
write the file Policy.sh.
$smoker->Configure( $config )
"Configure()" sorts out the MSWin32 mess and calls ./Configure
returns true if a makefile was created
$smoker->make_( )
"make_()" will run make.
returns true if a perl executable is found
make_test_prep( )
Run "make test-perp" and check if t/perl exists.
$smoker->make_test( )
$self->extend_with_harness( @nok )
$moker->make_test_harness
Use Test::Harness (the test_harness target) to get the failing test
information and do not bother with TEST.
$smoker->_run_harness_target( $target, $extra )
The command to run "make test_harness" differs based on platform,
so the arguments have to be passed into general routine. $target
specifies the makefile-target, $makeopt specifies the extra options
for the make program.
$smoker->_run_harness3_target( $target, $extra )
The command to run "make test_harness" differs based on platform,
so the arguments have to be passed into general routine. $target
specifies the makefile-target, $makeopt specifies the extra options
for the make program.
$self->make_minitest
"make" was unable to build a perl executable, but managed to build
miniperl, so we do "make minitest".
$self->_parse_harness_output( $\%notok, $all_ok, @lines )
Fator out the parsing of the Test::Harness output, as it seems
subject to change.
$self->_parse_harness3_output( $\%notok, $all_ok, @lines )
Fator out the parsing of the Test::Harness 3 output, as it seems
subject to change.
$self->_trasnaform_testnames( @notok )
"_transform_testnames()" takes a list of testnames, as found by
"TEST" (testname without ".t" suffix followed by dots and a reason)
and returns a hash with the filenames relative to the "t/"
directory as keys and the reason as value.
$smoker->_normalize_testname( $test )
Normalize a testname...
set_skip_tests( [$unset] )
Read from a MANIFEST like file, set in "$self->{skip_tests}", and
rename the files in it with the extension .tskip. If $unset is set,
they will be renamed back.
unset_skip_tests
Calls "$self->set_skip_tests( 1 )".
$self->change_manifest( \@tests, $unset )
$self->_run( $command[, $sub[, @args]] )
"_run()" returns "qx( $command )" unless $sub is specified. If
$sub is defined (and a coderef) "$sub->( $command, @args )" will be
called.
$self->_make( $command )
"_make()" calls "run( "make $command" )", and does some extra stuff
to help MSWin32 (the right maker, the directory).
$smoker->_make_fork( $target, $extra )
"_make_fork()" opens a read pipe to the make command with $target
and $extra arguments for the make command.
$smoker->_vms__rooted_logical
This code sets up a rooted logical "TSP5SRC" and changes the {ddir}
to that root.
SEE ALSO
Test::Smoke
COPYRIGHT
(c) 2002-2003, All rights reserved.
* Abe Timmerman <abeltje@cpan.org>
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See:
· http://www.perl.com/perl/misc/Artistic.html
· http://www.gnu.org/copyleft/gpl.html
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.
perl v5.14.1 2010-08-27 Test::Smoke::Smoker(3)