Author: stevehay
Date: Fri Aug 2 17:07:35 2013
New Revision: 1509781
URL: http://svn.apache.org/r1509781
Log:
Add the path to mod_perl.so to the PATH when running the test suite on Windows
Httpd.exe is able to find mod_perl.so because the test httpd.conf contains a LoadModule line
with the fully qualified path to mod_perl.so in it. However, before httpd.exe is started the
test framework must create that httpd.conf file. In the case of mod_perl it uses perl.exe
and goes into Apache/TestConfigPerl.pm's run_apache_test_configure(), which runs APACHE_TEST_CONFIGURE()
in various modules in t/response/TestApache (e.g. subprocess.pm). Those modules all use Apache2::Const,
but Apache2/Const/Const.dll and ModPerl/Const/Const.dll now depend on mod_perl.so for the
'perl_module' symbol. Therefore, perl.exe must be able to find mod_perl.so when running the
tests, and this is the easiest way to achieve that.
There is no problem with Apache2::Const and ModPerl::Const depending on mod_perl.so because
they are normally only used within a mod_perl application, which will (obviously) have mod_perl.so
loaded already. (It is only the APR::* modules which we are at pains (elsewhere) to avoid
having a dependency on mod_perl.so because they are of use outside of mod_perl applications.)
Modified:
perl/modperl/branches/httpd24/Makefile.PL
Modified: perl/modperl/branches/httpd24/Makefile.PL
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/Makefile.PL?rev=1509781&r1=1509780&r2=1509781&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/Makefile.PL (original)
+++ perl/modperl/branches/httpd24/Makefile.PL Fri Aug 2 17:07:35 2013
@@ -775,8 +775,24 @@ sub MY::test {
$ap_bindir = File::Spec->catdir($build->{MP_AP_PREFIX}, 'bin')
if $build->{MP_AP_PREFIX};
}
+ my $modperl_libexecdir = '';
+ if ($build->is_dynamic) {
+ # need to add the location of mod_perl.so to the PATH
+ my $lib = $build->modperl_libpath() || '';
+ if ($lib) {
+ $modperl_libexecdir = File::Basename::dirname($lib);
+ }
+ else {
+ $modperl_libexecdir = File::Spec->catdir($build->{cwd},
+ 'src/modules/perl')
+ if $build->{cwd};
+ }
+ }
+ my $extra_path = '';
+ $extra_path .= ";$ap_bindir" if $ap_bindir;
+ $extra_path .= ";$modperl_libexecdir" if $modperl_libexecdir;
$preamble = <<EOF;
-PATH = \$(PATH);$ap_bindir
+PATH = \$(PATH)$extra_path
EOF
}
else {
|