I've been working on a mod_perl extension, tested with Apache::Test.
I was running 1.27 before and everything was working great. I upgraded to
1.28 because I wanted to run the 'testcover' action. Now if I run my tests
(using "./Build test", "testcover", or "perl t/TEST"), I get the following
output:
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/bin/perl /home/faraway/dev/Apache2-AUS/t/TEST
-bugreport -verbose=0
Use of uninitialized value in open at
/usr/local/lib/perl/5.8.8/Apache/TestServer.pm line 315.
And nothing else happens.
This *only* happens with Apache2::AUS, which uses Module::Build. My
MakeMaker-based modules test fine. I've attached my Build.PL; if you want to
look at anything else in the distribution, let me know and I'll send it
over.
Thanks,
Tyler
#!/usr/bin/perl
use 5.006;
use strict;
use warnings;
use lib 'lib';
use Module::Build;
our %opts = (
module_name => 'Apache2::AUS',
license => 'perl',
requires => {
'DBIx::Migration::Directories' => '0.01',
'mod_perl2' => '2.000001',
'Schema::RDBMS::AUS' => '0.01',
'Apache2::Request' => '2.06',
},
build_requires => {
'Module::Build' => '0.27_03',
'Apache::TestMB' => '0',
'Schema::RDBMS::AUS' => '0.01',
'DBIx::Migration::Directories' => '0.01',
'mod_perl2' => '2.000001',
'DBIx::Transaction' => '0.006',
},
create_makefile_pl => 'passthrough',
);
eval { require Apache::TestMB; };
my $build;
if($@) {
$build = Module::Build->new(%opts, installdirs => {});
print <<"EOT";
*** Apache::TestMB is required to build this module!
This is supplied by the mod_perl2 package.
Once you have installed this package, you may have to run "Build.PL"
again. If you are installing from CPAN, you may need to quit and
re-enter your CPAN shell.
EOT
$build->prompt("Press enter to continue", ".");
} else {
$build = Apache::TestMB->new(%opts);
}
print qq{Example DSN: "DBI:mysql:database=test"\n};
if($build->notes(DBI_DSN => $build->prompt(
"What DSN should we use for database tests? (Enter '0' to skip DB tests)",
exists $ENV{DBI_DSN} ? $ENV{DBI_DSN} : 0
))) {
$build->notes(DBI_USER => $build->prompt(
"Username for the database connection:", $ENV{DBI_USER}
));
$build->notes(DBI_PASS => $build->prompt(
"Password for the database connection:", $ENV{DBI_PASS}
));
} else {
$build->notes(DBI_USER => undef);
$build->notes(DBI_PASS => undef);
}
$build->create_build_script;