>> +Note that I<Test::Builder> 0.18_01, available in I<Test::Simple>
>> +version 0.48_01 on CPAN, is required to use this feature.
>
>
> drop that, as 2 copies of the same thing in different places will go out
> of sync at some point. check on the code level should be sufficient.
> instead the error message could say where to find the required version.
well, maybe it's not clear - colloquially most people I've talked to refer
to Test::More. but Test::More isn't a distribution, it's part of
Test::Simple (as is Test::Builder).
anyway, I'll know more about the module versions when Test::Simple 0.49 is
released - if all the versions of the underlying packages are correct I'll
just require 0.49 and be done with it.
>> - my $lib = catfile Apache::Test::vars('top_dir'), qw(Apache-Test
>> lib);
>> - my $cmd = qq[$^X -Mlib="$lib" $file];
>> + # so we can find Apache/Test.pm from both the perl-framework
>> + # and Apache-Test. note that IS_APACHE_TEST_BUILD returns
>> + # true for the perl-framework as well
>> + my $lib = join ':',
>> + catfile(Apache::Test::vars('top_dir'), qw(Apache-Test lib)),
>> + catfile(Apache::Test::vars('top_dir'), 'lib');
>> + my $cmd = qq[PERL5LIB="$lib" $^X $file];
>
>
> why this change? is there anything wrong with -Mlib?
yes. the problem is that currently all.t does not get run properly from
Apache-Test/. the current code adds makes @INC look like
perl-framework/Apache-Test/Apache-Test/lib when running from the A-T directory.
> PERL5LIB will be
> ignored under -T -- code will be broken.
yes, but it shouldn't be a problem, since $lib is only important if A-T
can't be found, which is presumably only when running from the
perl-framework/ or Apache-Test/ directories. which is why I have my comment
that IS_APACHE_TEST_BUILD is insufficient to determine whether it is a real
A-T build or someone running from the perl-framework.
>> +
>> +<IfModule mod_perl.c>
>> + <IfDefine APACHE2>
>> + PerlModule Apache2
>> + </IfDefine>
>
>
> why not put the stuff below into extra.last.conf.in. Apache2 will be
> loaded by then. It's better not to mess with Apache2 before times.
because unless I use TestRunPerl (over TestRun) nothing mod_perl will be set
up, including Apache2. so it's not a matter of timing, but rather if
Apache2 is loaded at all.
>> +use Apache::TestRequest 'GET_BODY_ASSERT';
>> +print GET_BODY_ASSERT "/TestMore__testmorepm";
>
>
> hmm, what are you trying to achieve with repeating two tests twice? what
> if you don't hit the same interpreter if that's what you are after?
the reason they are run twice (and in alternating Test.pm and Test::More
order) is that when I first coded it there was a bug in that Test::More
would never release itself from the tests due to some global variables.
0.49 addresses this with an official API for persistent environments, which
I can now call (and is why we can't use any earlier versions).
so, yes, I suppose it is an interpreter issue.
> It's probably better to use 1 test and run the same_interprter framework?
well, the multiple test calls are to make sure that users can intermix
Test.pm and Test::More plans on the server, so I clearly want multiple tests
and not just one if I'm going to mimic user activity. but I'll look into
using same_interpreter to make sure that threaded mpms work properly as well.
>> + 0;
>
>
> What's 0? Should it be Apache::OK?
sure.
--Geoff