Matt Sergeant wrote: > There's a bug in Apache::Test that prevents it from working properly > when you're trying to test something with mp1 when you've got mp2 > installed. > > What happens is that Apache::TestConfig does this: > > use constant IS_MOD_PERL_2 => > eval { require mod_perl2 } || 0; > > Which of course is wrong, that should be IS_MOD_PERL_2_INSTALLED for a > start, but I haven't patched that.
:) > > What then happens later is in TestRunPerl we do: > > if ($rev == 2) { > eval { require mod_perl2 }; > } else { > eval { require mod_perl }; > } > my $mp_ver = $mod_perl::VERSION; > > Which now because mod_perl2 is already loaded, always returns the mp2 > version. yah, ok. > > Side comment: This stuff is a real maze of twisty passages - the only > way I could find to debug this was to add Carp::cluck() to mod_perl2.pm > so I knew what was loading it. I wish it were written a bit simpler. > Maybe I'm underestimating the complexity of what it's trying to do. Apache-Test is the best piece of software I've used lately. it's also the worst piece of software I've had to maintain lately :) it really needs to be true OO and not, as you say, a maze of twisty passages, with various "classes" magically adding foo to other "classes." someday I'll re-attempt a complete OO rewrite from scratch when I have a month of nothing to do :) > # sanity checking and loading the right mod_perl version > + delete $INC{'mod_perl.pm'}; > if ($rev == 2) { > eval { require mod_perl2 }; > } else { applied, with comments. thanks! --Geoff