NAME
Test::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 );
}
DESCRIPTION
METHODS
- 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 thenew()
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()
runsmake -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 ./Configurereturns 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 )
- $self->make_minitest( $cfgargs )
-
make
was unable to build a perl executable, but managed to build miniperl, so we domake minitest
. - $self->_trasnaform_testnames( @notok )
-
_transform_testnames()
takes a list of testnames, as found byTEST
(testname without.t
suffix followed by dots and a reason) and returns a hash with the filenames relative to thet/
directory as keys and the reason as value. - $self->_run( $command[, $sub[, @args]] )
-
_run()
returnsqx( $command )
unless$sub
is specified. If$sub
is defined (and a coderef)$sub->( $command, @args )
will be called. - $self->_make( $command )
-
_make()
callsrun( "make $command" )
, and does some extra stuff to help MSWin32 (the right maker, the directory).
SEE ALSO
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.