Subject: | Tests fail under Windows |
Date: | Mon, 15 Jun 2015 16:11:29 +0000 |
To: | "bug-WWW-Mechanize [...] rt.cpan.org" <bug-WWW-Mechanize [...] rt.cpan.org> |
From: | "Neubauer, Ralf" <ralf.neubauer [...] wido.bv.aok.de> |
Hi,
several of the tests (12 of the 39 test scripts) fail under Windows, because the modules don't find their DLLs via the ("sanitized") PATH.
As an example I run add_header.t manually:
D:\tmp\strawberry-5.20-64\archive\WWW-Mechanize-1.74>perl -T t\add_header.t
1..4
ok 1 - use WWW::Mechanize;
Can't load 'c:/strawberry-5.20.2.1-64/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden
at c:/strawberry-5.20.2.1-64/perl/lib/DynaLoader.pm line 193.
at c:/strawberry-5.20.2.1-64/perl/vendor/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at c:/strawberry-5.20.2.1-64/perl/vendor/lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at c:/strawberry-5.20.2.1-64/perl/vendor/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at c:/strawberry-5.20.2.1-64/perl/vendor/lib/Net/HTTPS.pm line 26.
Can't load 'c:/strawberry-5.20.2.1-64/perl/vendor/lib/auto/Crypt/SSLeay/SSLeay.xs.dll' for module Crypt::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at c:/strawberry-5.20.2.1-64/perl/lib/DynaLoader.pm line 193.
at c:/strawberry-5.20.2.1-64/perl/vendor/lib/Net/SSL.pm line 20.
Compilation failed in require at c:/strawberry-5.20.2.1-64/perl/vendor/lib/Net/SSL.pm line 20.
Compilation failed in require at c:/strawberry-5.20.2.1-64/perl/vendor/lib/Net/HTTPS.pm line 30.
Compilation failed in require at c:/strawberry-5.20.2.1-64/perl/vendor/lib/LWP/Protocol/https.pm line 8.
Compilation failed in require at (eval 26) line 2.
# Looks like you planned 4 tests but ran 1.
# Looks like your test exited with 2 just after 1.
Together with the "Can't load 'c:/.../SSLeay.xs.dll'" I also got a Windows error dialog, telling me LIBEAY32__.dll is missing on my Computer and I have to 'reinstall the program'. That means, SSLeay.xs.dll exists, but can't be loaded, because LIBEAY32__.dll isn't found by the Windows DLL loader.
C:\strawberry-5.20-64\c\bin\libeay32__.dll exists and C:\strawberry-5.20-64\c\bin\ is in the %PATH%.
When I change the code of t\add_header.t from
BEGIN {
delete @ENV{qw( PATH IFS CDPATH ENV BASH_ENV )}; # Placates taint-unsafe Cwd.pm in 5.6.1
use_ok( 'WWW::Mechanize' );
}
to
BEGIN {
delete @ENV{qw( IFS CDPATH ENV BASH_ENV )}; # Placates taint-unsafe Cwd.pm in 5.6.1
use_ok( 'WWW::Mechanize' );
}
everything is ok:
D:\tmp\strawberry-5.20-64\archive\WWW-Mechanize-1.74>perl -T t\add_header.t
1..4
ok 1 - use WWW::Mechanize;
ok 2 - 'Created agent' isa 'WWW::Mechanize'
ok 3 - Referer's in there
ok 4 - Referer's not there
Ralf