Subject: Re: 1.5.18: Perl regression tests fail when lib directory is present
From: Andrew Ho <[email-masked]>
To: "Gerrit P. Haase" <[email-masked]>
Cc: [email-masked]
Date: Sat, 16 Jul 2005 12:27:11 -0700 (PDT)

Hello,

Thanks for the quick and complete reply!

I checked environment variable settings and they don't appear to be at 
fault. First, I tried this:

     % /usr/bin/env -i PATH=/usr/bin perl Makefile.PL
     % /usr/bin/env -i PATH=/usr/bin make
     % /usr/bin/env -i PATH=/usr/bin make test

This still breaks. A similar test using this command:

     % perl -e ' %ENV = (PATH => "/usr/bin");
                 system("perl", "Makefile.PL");
                 system("make");
                 system("make", "test"); '

Also fails. I next checked my list of Windows environment variables, and 
here is the summary. First the set listed as "user variables" (all three 
contain path values with spaces):

     PATH
     TEMP
     TMP

And my "system variables" (OCCAMLLIB, which I guess the OCAML installer
snuck in on me, and Path are the only two variables containing path
values with spaces in them):

     ComSpec
     FP_NO_HOST_CHECK
     NUMBER_OF_PROCESSORS
     OCAMLLIB
     OS
     Path
     PATHEXT
     PROCESSOR_ARCHITECTURE
     PROCESSOR_IDENTIFIER
     PROCESSOR_LEVEL
     PROCESSOR_REVISION
     TEMP
     TMP
     windir

I don't think there are any LIB type variables here, although I'm not 
intimately familiar with the guts of MakeMaker on Windows. Neither I nor 
the co-worker who had the same problem have VC++ installed.

Did you try to run "make test" on the TestModule.tar.gz that I linked to? 
I'm curious to see if that simple case fails (it contains both a "working" 
and "broken" version, the latter has the module in a "lib" subdirectory). 
And is it possible you already had Lingua::EN::Inflect installed on your 
test system?

Humbly,

Andrew

----------------------------------------------------------------
Andrew Ho                                      [email-masked]
Staff Engineer                                      650-930-9062
Tellme Networks, Inc.                     http://www.tellme.com/
----------------------------------------------------------------

On Sat, 16 Jul 2005, Gerrit P. Haase wrote:

> Andrew Ho wrote:
>> Hello,
>> 
>> It appears that on the latest version of Cygwin's Perl, Perl modules with 
>> regression tests (for example, ones you can download from CPAN) fail "make 
>> test" on every other test. I did some experimentation and this appears to 
>> happen only if the modules are in a subdirectory (typically "lib") rather 
>> than in the install root.
>> 
>> How to reproduce:
>> 
>>     * Upgrade to latest versions of all Cygwin packages (probably
>>       Perl is the only relevant one)
>> 
>>     * Download any CPAN module (or create a Perl module) whose files
>>       are in a "lib" subdirectory. Lingua::EN::Inflect is an arbitrary
>>       example of one that is unlikely to be already installed.
>> 
>>     * Run through the usual Perl install steps:
>>       perl Makefile.PL && make && make test
>> 
>>     * Observe that "make test" fails on every other test (odd numbered
>>       runs, apparently).
>> 
>> I have reduced this breakage to the smallest possible test case:
>> http://www.zeuscat.com/andrew/src/TestModule.tar.gz
>
> No problems here with Lingua::EN::Inflect, cannot reproduce it.  Maybe
> you have some non Cygwin environment settings?  It happens to be a known
> problem that MakeMaker passes the VC++ environment setting for LIB
> through to the Makefile and most of the time it fails to compile because
> it is a path in LIB with non quoted backslashes or even worse a path
> including spaces.
>
>
> $ perl Makefile.PL
> Checking if your kit is complete...
> Looks good
> Writing Makefile for Lingua::EN::Inflect
>
> $ make
> cp demo_NO.pl blib/lib/Lingua/EN/demo_NO.pl
> cp demo_eq.pl blib/lib/Lingua/EN/demo_eq.pl
> cp demo_PL.pl blib/lib/Lingua/EN/demo_PL.pl
> cp demo_inflect.pl blib/lib/Lingua/EN/demo_inflect.pl
> cp demo_NUM.pl blib/lib/Lingua/EN/demo_NUM.pl
> cp lib/Lingua/EN/Inflect.pm blib/lib/Lingua/EN/Inflect.pm
>
> $ make test
> /usr/bin/perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 
> 'blib/arch')" t/*.t
> t/classical_all..........ok 
> t/classical_ancient......ok 
> t/classical_ancient_1....ok 
> t/classical_herd.........ok 
> t/classical_herd_1.......ok 
> t/classical_names........ok 
> t/classical_names_1......ok 
> t/classical_person.......ok 
> t/classical_person_1.....ok 
> t/classical_zero.........ok 
> t/classical_zero_1.......ok 
> t/inflections............ok 
> All tests successful.
> Files=12, Tests=1413, 10 wallclock secs ( 7.47 cusr +  1.87 csys =  9.34 CPU)
>
>
>
>> For some reason, this doesn't appear to break modules that are tested under 
>> the CPAN shell ("make test" passes for modules built that way).
>
> Another hint that there may be some unusual environment setting?
>
>
>> The Perl package is 5.8.7-2. Here is the output of uname -srm:
>> 
>>     CYGWIN_NT-5.1 1.5.18(0.132/4/2) i686
>> 
>> I and my co-workers have reproduced this on several different computers, all 
>> running Windows XP.
>
> I am on XP here too, don't know if it matters, I tested Lingua::.. at
> the same machine where the latest perl release was compiled.
>
>
>
> Gerrit

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/