Jan Kaluža wrote on 2013-07-15:
> On 07/15/2013 02:58 PM, Steve Hay wrote:
>> [...] right now I still have it crashing
> on startup (with or without revision r1303215), so we obviously didn't
> have the same crashing problem after all :-/ I will try to fix that
> next.
>> 
> 
> I'm afraid I can't help you further here...
> 

When running "nmake test" I'm getting:

Can't load 
'D:\temp\mp2d\modperl-httpd24\blib\arch/auto/Apache2/Const/Const.dll' for 
module Apache2::Const: load_file:The specified module could not be found at 
D:/temp/mp2d/perl/lib/DynaLoader.pm line 190.
 at D:\temp\mp2d\modperl-httpd24\t\response\TestApache\subprocess.pm line 13.

Trying a simple one-liner:

D:\temp\mp2d\perl\bin\perl.exe -Iblib\arch -Iblib\lib -MApache2::Const -e1

does much the same. That works with trunk, built against httpd-2.2. The 
difference is that Apache2/Const/Const.dll now depends on mod_perl.so (it 
didn't use to), and that isn't in a location in the PATH when running the test 
suite.

Using dumpbin /imports to see why we have this new dependency shows that it's 
due to the 'perl_module' symbol... We've been here before recently with the 
APR::Brigade build failure. I wondered if Apache2::Const (and maybe others) 
needed to link against libaprext.lib (with its fake 'perl_module' symbol) to 
avoid this problem, but lib/ModPerl/BuildMM says:

        # in order to decouple APR/APR::* from mod_perl.so,
        # link these modules against the static MP_APR_LIB lib,
        # rather than the mod_perl lib (which would demand mod_perl.so
        # be available). For other modules, use mod_perl.lib as
        # usual.

which suggests that Apache2::* modules are expected to depend on mod_perl.so 
(even though this one happened not to until now), so using libaprext.lib 
instead of mod_perl.lib here is probably the wrong thing to do here and would 
likely break things that require a proper definitions of 'perl_module'.

So I think the answer is to add src/modules/perl (where mod_perl.so has been 
built) to the PATH when running the test suite.

If I do that manually in my Command Prompt window then "nmake test" runs 
normally (albeit with a *lot* of test failures [1] which I'll look at later), 
but I'm not sure where is the best place to make that happen automatically 
within Apache-Test?

Is this an issue on other OSes, or only on Windows? (Not sure if you normally 
build mod_perl dynamically or statically linked elsewhere?)


[1] The complete list of failures on this first run through (using a perl 
without LWP installed, so lots more tests were skipped too) is:

Test Summary Report
-------------------
t\apache\subprocess.t                 (Wstat: 0 Tests: 1 Failed: 0)
  Parse errors: Bad plan.  You planned 5 tests but ran 1.
t\api\access2.t                       (Wstat: 0 Tests: 0 Failed: 0)
  Parse errors: No plan found in TAP output
t\api\server_const.t                  (Wstat: 2304 Tests: 0 Failed: 0)
  Non-zero exit status: 9
  Parse errors: No plan found in TAP output
t\apr-ext\brigade.t                   (Wstat: 1280 Tests: 0 Failed: 0)
  Non-zero exit status: 5
  Parse errors: Bad plan.  You planned 14 tests but ran 0.
t\apr-ext\bucket.t                    (Wstat: 1280 Tests: 0 Failed: 0)
  Non-zero exit status: 5
  Parse errors: Bad plan.  You planned 21 tests but ran 0.
t\apr-ext\finfo.t                     (Wstat: 1280 Tests: 0 Failed: 0)
  Non-zero exit status: 5
  Parse errors: Bad plan.  You planned 27 tests but ran 0.
t\apr-ext\perlio.t                    (Wstat: 1280 Tests: 0 Failed: 0)
  Non-zero exit status: 5
  Parse errors: No plan found in TAP output
t\apr-ext\pool.t                      (Wstat: 1280 Tests: 0 Failed: 0)
  Non-zero exit status: 5
  Parse errors: Bad plan.  You planned 77 tests but ran 0.
t\apr-ext\table.t                     (Wstat: 1280 Tests: 0 Failed: 0)
  Non-zero exit status: 5
  Parse errors: Bad plan.  You planned 58 tests but ran 0.
t\apr-ext\threadmutex.t               (Wstat: 1280 Tests: 0 Failed: 0)
  Non-zero exit status: 5
  Parse errors: Bad plan.  You planned 5 tests but ran 0.
t\apr-ext\threadrwlock.t              (Wstat: 1280 Tests: 0 Failed: 0)
  Non-zero exit status: 5
  Parse errors: Bad plan.  You planned 5 tests but ran 0.
t\apr-ext\uri.t                       (Wstat: 1280 Tests: 0 Failed: 0)
  Non-zero exit status: 5
  Parse errors: Bad plan.  You planned 36 tests but ran 0.
t\compat\conn_rec.t                   (Wstat: 0 Tests: 2 Failed: 0)
  Parse errors: Bad plan.  You planned 4 tests but ran 2.
t\modperl\local_env.t                 (Wstat: 0 Tests: 6 Failed: 1)
  Failed test:  6
t\modperl\merge.t                     (Wstat: 0 Tests: 10 Failed: 3)
  Failed tests:  3, 6, 9
t\modperl\merge2.t                    (Wstat: 0 Tests: 10 Failed: 3)
  Failed tests:  3, 6, 9
t\modperl\merge3.t                    (Wstat: 0 Tests: 10 Failed: 3)
  Failed tests:  3, 6, 9
t\modperl\setupenv2.t                 (Wstat: 0 Tests: 23 Failed: 7)
  Failed tests:  17-23
t\modules\cgi.t                       (Wstat: 0 Tests: 4 Failed: 4)
  Failed tests:  1-4
t\modules\cgi2.t                      (Wstat: 0 Tests: 4 Failed: 4)
  Failed tests:  1-4
t\modules\cgipost.t                   (Wstat: 0 Tests: 6 Failed: 5)
  Failed tests:  2-6
t\modules\cgipost2.t                  (Wstat: 0 Tests: 6 Failed: 5)
  Failed tests:  2-6
t\protocol\echo_block.t               (Wstat: 0 Tests: 3 Failed: 2)
  Failed tests:  2-3
t\protocol\echo_nonblock.t            (Wstat: 0 Tests: 3 Failed: 1)
  Failed test:  2
t\protocol\echo_timeout.t             (Wstat: 0 Tests: 5 Failed: 4)
  Failed tests:  2-5
t\protocol\pseudo_http.t              (Wstat: 0 Tests: 13 Failed: 9)
  Failed tests:  3-8, 11-13
Files=249, Tests=1937, 722 wallclock secs ( 2.12 usr +  0.30 sys =  2.42 CPU)
Result: FAIL
Failed 26/249 test programs. 51/1937 subtests failed.

Reply via email to