Skip Menu |

This queue is for tickets about the Catalyst-Runtime CPAN distribution.

Report information
The Basics
Id: 26452
Status: resolved
Priority: 0/
Queue: Catalyst-Runtime

People
Owner: Nobody in particular
Requestors: m.nooning [...] comcast.net
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 5.7007
Fixed in: (no value)



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
On Apr 17 12:45:38 2007, m.nooning@comcast.net wrote: This is error of test, not module. Tests modilfies @INC and Cwd loads Win32, so it fails because Perl cannot find Win32. -- Alexandr Ciornii, http://chorny.net
Workaround committed in svn revision 7716.