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;