This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 1.5.18: Perl regression tests fail when lib directory is present


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                                      andrew@tellme.com
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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]