This is the mail archive of the
cygwin
mailing list for the Cygwin project.
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/