Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Apache::TestMM (3)

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

User Contributed Perl Documentation                          Apache::TestMM(3)



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"
         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 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.



ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+-----------------------------------------+
       |ATTRIBUTE TYPE |            ATTRIBUTE VALUE              |
       +---------------+-----------------------------------------+
       |Availability   | web/server/apache-24/module/apache-perl |
       +---------------+-----------------------------------------+
       |Stability      | Uncommitted                             |
       +---------------+-----------------------------------------+

NOTES
       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from
       https://www.apache.org/dist/perl/mod_perl-2.0.12.tar.gz.

       Further information about this software can be found on the open source
       community website at https://perl.apache.org/.



perl v5.32.0                      2022-06-28                 Apache::TestMM(3)