Subject: | make test failure in t/c3_mro Can't locate Win32.pm in @INC |
Windows XP Home edition, ActiveState Perl 5.8.8.
All but one test passes. I have the latest Win32, which is attested to
by the fact that many of the passing tests use it.
The "nmake test" error message (sandwiched between passing test reports) is
------------paste error message
t/01use.....................................................ok
t/02pod.....................................................skipped
all skipped: set TEST_POD to enable this test
t/03podcoverage.............................................skipped
all skipped: set TEST_POD to enable this test
t/c3_mro....................................................Can't locate
Win32.pm in @INC (@INC contains: C:\Documents and Settings\All
Users\Documents\webdownload\perl\Catalyst\Catalyst-Runtime-5.7007\blib\lib
C:\Documents and Settings\All
Users\Documents\webdownload\perl\Catalyst\Catalyst-Runtime-5.7007\blib\arch)
at C:/Perl/lib/Cwd.pm line 668.
BEGIN failed--compilation aborted.
# Looks like your test died before it could output anything.
t/c3_mro....................................................dubious
Test returned status 255 (wstat 65280, 0xff00)
t/custom_live_component_controller_action_auto_doublebug....ok
------------end paste error message
If I run just "prove t/c3_mro" then it passes.
I added the print statements to c3_mro as shown below. It never gets to
"HELLO 2" or "HELLO 3".
-------------paste modification
my @cat_mods;
{
local @INC = grep {/blib/} @INC;
print STDERR ("\n\n\n#HELLO 1 XXX \n\n\n");
@cat_mods = (
'Catalyst',
Module::Pluggable::Object->new(search_path => ['Catalyst'])->plugins,
);
print STDERR ("\n\n\n#HELLO 2 XXX \n\n\n");
}
print STDERR ("\n\n\n#HELLO 3 XXX \n\n\n");
------------end paste modification
I have the latest Module::Pluggable::Object. Namely, version 3.6.
I also have version 3.24 of Cwd.pm.
I went into Cwd.pm and sprinkled print statements around. The death of
the test seems to be occurring in the code pasted below.
-------------paste Cwd.pm sub
sub _win32_cwd {
print STDERR "Cwd XXXX 100: About to access Win32 GetCwd()\n";
$ENV{'PWD'} = Win32::GetCwd();
print STDERR "Cwd XXXX 101: About to access Win32 GetCwd()\n";
$ENV{'PWD'} =~ s:\\:/:g ;
print STDERR "Cwd XXXX 102: About to access Win32 GetCwd()\n";
return $ENV{'PWD'};
}
-------------end paste Cwd.pm sub
The "Cwd XXXX 100" gets printed, and then comes the "Can't locate
Win32.pm" error message pasted previously.
If I cheat an put in
push (@INC, "C:\\perl\\lib");
into the sub _win32_cwd pasted above, then naturally it passes. The
@INC array is getting trounced prior to the invocation to Cwd.pm.
Can anyone think of what I might do to track this thing down further?
This is holding up my installation of Catalyst.
Thanks