Skip Menu |

This queue is for tickets about the Win32 CPAN distribution.

Report information
The Basics
Id: 66751
Status: resolved
Priority: 0/
Queue: Win32

People
Owner: Nobody in particular
Requestors: brian [...] minton.name
Cc:
AdminCc:

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



Subject: make test fails on cygwin
I think the problem is with cygwin's double slash handling. this is with perl 5.12.1 (also fails with 5.10.1) and cygwin version CYGWIN_NT-5.1 1.7.8(0.236/5/3) 2011-03-01 09:36 i686 Cygwin thanks, Brian Minton $ cpan Win32 CPAN: Storable loaded ok (v2.25) Going to read '/home/bminton/.cpan/Metadata' Database was generated on Fri, 18 Mar 2011 19:27:12 GMT Running install for module 'Win32' Running make for J/JD/JDB/Win32-0.44.tar.gz CPAN: Digest::SHA loaded ok (v5.61) CPAN: Module::Signature loaded ok (v0.66) WARNING: This key is not certified with a trusted signature! Primary key fingerprint: 2E66 557A B97C 19C7 91AF 8E20 328D A867 450F 89EC Signature for /home/bminton/.cpan/sources/authors/id/J/JD/JDB/CHECKSUMS ok CPAN: Compress::Zlib loaded ok (v2.033) Checksum for /home/bminton/.cpan/sources/authors/id/J/JD/JDB/Win32-0.44.tar.gz ok CPAN: Archive::Tar loaded ok (v1.76) CPAN: File::Temp loaded ok (v0.22) Package came without SIGNATURE CPAN: Parse::CPAN::Meta loaded ok (v1.4401) CPAN: CPAN::Meta loaded ok (v2.110580) CPAN.pm: Going to build J/JD/JDB/Win32-0.44.tar.gz CPAN: CPAN::Reporter loaded ok (v1.1902) Checking if your kit is complete... Looks good Writing Makefile for Win32 (/usr/local/bin/perl5.12.1 Makefile.PL exited with 0) CPAN::Reporter: Makefile.PL result is 'pass', No errors. Could not read metadata file. Falling back to other methods to determine prerequisites cp Win32.pm blib/lib/Win32.pm /usr/local/bin/perl5.12.1.exe /usr/local/lib/perl5/5.12.1/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.12.1/ExtUtils/typemap Win32.xs > Win32.xsc && mv Win32.xsc Win32.c gcc -c -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -fstack-protector -DUSEIMPORTLIB -O3 -DVERSION=\"0.44\" -DXS_VERSION=\"0.44\" "-I/usr/local/lib/perl5/5.12.1/cygwin-thread-multi-64int/CORE" Win32.c Running Mkbootstrap for Win32 () chmod 644 Win32.bs rm -f blib/arch/auto/Win32/Win32.dll g++ --shared -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base -L/usr/local/lib -fstack-protector Win32.o -o blib/arch/auto/Win32/Win32.dll \ /usr/local/lib/perl5/5.12.1/cygwin-thread-multi-64int/CORE/cygperl5_12_1.dll -L/lib/w32api -lole32 -lversion \ chmod 755 blib/arch/auto/Win32/Win32.dll cp Win32.bs blib/arch/auto/Win32/Win32.bs chmod 644 blib/arch/auto/Win32/Win32.bs Manifying blib/man3/Win32.3pm (/usr/bin/make exited with 0) CPAN::Reporter: make result is 'pass', No errors. JDB/Win32-0.44.tar.gz /usr/bin/make -- OK CPAN: YAML::XS loaded ok (v0.34) Running make test rm -f blib/arch/auto/Win32/Win32.dll g++ --shared -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base -L/usr/local/lib -fstack-protector Win32.o -o blib/arch/auto/Win32/Win32.dll \ /usr/local/lib/perl5/5.12.1/cygwin-thread-multi-64int/CORE/cygperl5_12_1.dll -L/lib/w32api -lole32 -lversion \ chmod 755 blib/arch/auto/Win32/Win32.dll cp Win32.bs blib/arch/auto/Win32/Win32.bs chmod 644 blib/arch/auto/Win32/Win32.bs PERL_DL_NONLAZY=1 /usr/local/bin/perl5.12.1.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/CreateFile.t ................ ok t/ExpandEnvironmentStrings.t .. ok t/GetCurrentThreadId.t ........ ok t/GetFileVersion.t ............ skipped: Only ActivePerl seems to set the perl.exe fileversion t/GetFolderPath.t ............. ok t/GetFullPathName.t ........... ok t/GetLongPathName.t ........... ok t/GetOSName.t ................. ok t/GetOSVersion.t .............. ok t/GetShortPathName.t .......... ok t/GuidGen.t ................... ok t/Names.t ..................... ok # Test 4 got: "Foo \x{394}\x{419} Bar \x{5E7}\x{645} Baz\\xyzzy \x{394}\x{419} plugh \x{5E7}\x{645}" (t/Unicode.t at line 51) # Expected: <UNDEF> # t/Unicode.t line 51 is: ok($file, Win32::GetLongPathName("$dir\\$_")); t/Unicode.t ................... Failed 1/12 subtests Test Summary Report ------------------- t/Unicode.t (Wstat: 0 Tests: 12 Failed: 1) Failed test: 4 Files=13, Tests=569, 4 wallclock secs ( 0.13 usr 0.20 sys + 1.81 cusr 1.41 csys = 3.55 CPU) Result: FAIL Failed 1/13 test programs. 1/569 subtests failed. make: *** [test_dynamic] Error 255 (/usr/bin/make test exited with 512) CPAN::Reporter: Test result is 'fail', One or more tests failed. CPAN::Reporter: preparing a CPAN Testers report for Win32-0.44 CPAN::Reporter: this appears to be a duplicate report for the test phase: FAIL Win32-0.44 cygwin-thread-multi-64int 1.7.1(0.21853) Test report will not be sent. JDB/Win32-0.44.tar.gz /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports JDB/Win32-0.44.tar.gz Running make install make test had returned bad status, won't install without force
CC: libwin32 [...] perl.org
Subject: Re: [rt.cpan.org #66751] make test fails on cygwin
Date: Thu, 24 Mar 2011 09:56:30 +0100
To: bug-Win32 [...] rt.cpan.org
From: Reini Urban <rurban [...] x-ray.at>
Brian Minton via RT schrieb: Show quoted text
> # Test 4 got: "Foo \x{394}\x{419} Bar \x{5E7}\x{645} Baz\\xyzzy > \x{394}\x{419} plugh \x{5E7}\x{645}" (t/Unicode.t at line 51) > # Expected:<UNDEF> > # t/Unicode.t line 51 is: ok($file, > Win32::GetLongPathName("$dir\\$_")); > t/Unicode.t ...................
Wrong test, cygwin-1.7 does unicode paths not just ascii. attached is my core patch from cygwin branch on github -- Reini Urban

Message body is not shown because sender requested not to inline it.

Subject: Re: [rt.cpan.org #66751] make test fails on cygwin
Date: Fri, 26 Aug 2011 14:51:14 +0000
To: "bug-Win32 [...] rt.cpan.org" <bug-Win32 [...] rt.cpan.org>, "libwin32 [...] perl.org" <libwin32 [...] perl.org>, Reini Urban <rurban [...] x-ray.at>
From: Andjelkovic Toni RBS sIT <Toni.Andjelkovic [...] s-itsolutions.at>
The test fails because readdir() on Cygwin returns a scalar containing UTF8, but it does not set the scalar's UTF-8 flag. It helps to set the flag explicitely: --- t/Unicode.t.bak 2011-08-26 16:37:11.483644100 +0200 +++ t/Unicode.t 2011-08-26 16:45:10.802566000 +0200 @@ -1,5 +1,6 @@ use strict; use Test; +use Encode; use Cwd qw(cwd); use Win32; @@ -48,6 +49,7 @@ ok(opendir(my $dh, Win32::GetANSIPathName($dir))); while ($_ = readdir($dh)) { next if /^\./; + Encode::_utf8_on($_) if $^O eq "cygwin"; ok($file, Win32::GetLongPathName("$dir\\$_")); } closedir($dh); -- Toni Andjelkovic s IT Solutions Risk and Balance Sheet Management Solutions s IT Solutions AT Spardat GmbH A-1010 Wien, Werdertorgasse 5 Phone: +43 (0) 50100 - 16558 Fax: +43 (0) 50100 9 - 16558 mailto:toni.andjelkovic@s-itsolutions.at http://www.s-itsolutions.com
CC: "libwin32 [...] perl.org" <libwin32 [...] perl.org>, Andjelkovic Toni RBS sIT <Toni.Andjelkovic [...] s-itsolutions.at>
Subject: Re: [rt.cpan.org #66751] make test fails on cygwin
Date: Sat, 27 Aug 2011 08:58:17 +0200
To: "bug-Win32 [...] rt.cpan.org" <bug-Win32 [...] rt.cpan.org>
From: Reini Urban <rurban [...] x-ray.at>
2011/8/26 Andjelkovic Toni RBS sIT <Toni.Andjelkovic@s-itsolutions.at>: Show quoted text
> The test fails because readdir() on Cygwin returns a scalar containing UTF8, > but it does not set the scalar's UTF-8 flag. It helps to set the flag > explicitely:
Yes, on cygwin >= 1.7 only. I skipped that test on my cygwin github branch for CORE in cpan/Win32/t/Unicode.t Show quoted text
> --- t/Unicode.t.bak     2011-08-26 16:37:11.483644100 +0200 > +++ t/Unicode.t 2011-08-26 16:45:10.802566000 +0200 > @@ -1,5 +1,6 @@ >  use strict; >  use Test; > +use Encode; >  use Cwd qw(cwd); >  use Win32; > > @@ -48,6 +49,7 @@ >  ok(opendir(my $dh, Win32::GetANSIPathName($dir))); >  while ($_ = readdir($dh)) { >     next if /^\./; > +    Encode::_utf8_on($_) if $^O eq "cygwin"; >     ok($file, Win32::GetLongPathName("$dir\\$_")); >  } >  closedir($dh);
-- Reini Urban http://phpwiki.org/           http://murbreak.at/
On Sat Aug 27 02:58:26 2011, rurban@x-ray.at wrote: Show quoted text
> 2011/8/26 Andjelkovic Toni RBS sIT <Toni.Andjelkovic@s- > itsolutions.at>:
> > The test fails because readdir() on Cygwin returns a scalar
> containing UTF8,
> > but it does not set the scalar's UTF-8 flag. It helps to set the
> flag
> > explicitely:
> > Yes, on cygwin >= 1.7 only. > > I skipped that test on my cygwin github branch for CORE in > cpan/Win32/t/Unicode.t >
> > --- t/Unicode.t.bak     2011-08-26 16:37:11.483644100 +0200 > > +++ t/Unicode.t 2011-08-26 16:45:10.802566000 +0200 > > @@ -1,5 +1,6 @@ > >  use strict; > >  use Test; > > +use Encode; > >  use Cwd qw(cwd); > >  use Win32; > > > > @@ -48,6 +49,7 @@ > >  ok(opendir(my $dh, Win32::GetANSIPathName($dir))); > >  while ($_ = readdir($dh)) { > >     next if /^\./; > > +    Encode::_utf8_on($_) if $^O eq "cygwin"; > >     ok($file, Win32::GetLongPathName("$dir\\$_")); > >  } > >  closedir($dh);
Thanks, I applied a variant of the patch that doesn't set the flag on Cygwin 1.5. Released in Win32-0.45.