Apache::TestMM - Provide MakeMaker Wrapper Methods |
Apache::TestMM - Provide MakeMaker Wrapper Methods
require Apache::TestMM; # import MY::test and MY::clean overrides for MM Apache::TestMM->import(qw(test clean)); # parse command line args Apache::TestMM::filter_args(); # autogenerate the script Apache::TestMM::generate_script('t/TEST');
Apache::TestMM
provides wrappers for the ExtUtils::MakeMaker
craft, making it easier to extend the autogenerated Makefile with
Apache::Test
.
import
use Apache::TestMM qw(test clean);
or:
Apache::TestMM->import(qw(test clean));
Imports MY::
overrides for the default ExtUtils::MakeMaker
test and clean targets, as if you have defined:
sub MY::test {...} sub MY::clean {...}
in Makefile.PL. Apache::TestMM
does this for you so that these Makefile
targets will run the Apache server and the tests for it, and clean up after
its mess.
filter_args
push @ARGV, '-apxs', $apxs_path; Apache::TestMM::filter_args(); WriteMakefile(...);
When WriteMakefile()
is called it parses @ARGV
, hoping to find special
options like PREFIX=/home/stas/perl
. Apache::Test
accepts a lot of
options of its own. When Apache::TestMM::filter_args()
is called, it
removes any Apache::Test
-specific options from @ARGV
and stores them
internally, so when WriteMakefile()
is called they aren't in @ARGV
and
thus won't be processed by WriteMakefile()
.
The options can be set when Makefile.PL is called:
% perl Makefile.PL -apxs /path/to/apxs
Or you can push them manually to @ARGV
from the code:
push @ARGV, '-apxs', $apxs_path;
When:
Apache::TestMM::generate_script('t/TEST');
is called, Apache::Test
-specific options extracted by
Apache::TestMM::filter_args()
are written to the autogenerated
file. In our example, the autogenerated t/TEST will include:
%Apache::TestConfig::Argv = qw(apxs /path/to/apxs);
which is going to be used by the Apache::Test
runtime.
generate_script
Apache::TestMM::generate_script('t/TEST');
generate_script()
accepts the name of the script to generate and
will look for a template with the same name and suffix .PL. So in
our example it'll look for t/TEST.PL. The autogenerated script
t/TEST will include the contents of t/TEST.PL, and special
directives, including any configuration options passed via
filter_args()|/C_filter_args_
called from Makefile.PL, special
fixup code, etc. If no argument is passed to generate_script()
,
it will create a file named t/TEST by default.
Apache::TestMM - Provide MakeMaker Wrapper Methods |