NAME
Apache::TestMM - Provide MakeMaker Wrapper Methods
SYNOPSIS
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'
);
DESCRIPTION
Apache::TestMM
provides wrappers for the ExtUtils::MakeMaker
craft, making it easier to extend the autogenerated Makefile with Apache::Test
.
FUNCTIONS
import
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 configuration 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.
The other frequently used options are: -httpd
, telling where to find the httpd (usually when the -apxs
option is not used), -libmodperl
to use a specific mod_perl shared object (if your mod_perl is built as DSO), -maxclients
to change the default number of the configured MaxClients
directive, -port
to start the server on a specific port, etc. To get the complete list of available configuration options and their purpose and syntax, run:
% perl -MApache::TestConfig -le
'Apache::TestConfig::usage()'
You may wish to document some of these in your application's README file, especially the -apxs
and -httpd
options.
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()
called from Makefile.PL, special fixup code, etc.