Brian Minton via RT schrieb:
# 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
diff --git a/cpan/Win32/t/Unicode.t b/cpan/Win32/t/Unicode.t
index 3570142..7ab8a6f 100644
--- a/cpan/Win32/t/Unicode.t
+++ b/cpan/Win32/t/Unicode.t
@@ -1,6 +1,7 @@
 use strict;
 use Test;
 use Cwd qw(cwd);
+use Config qw(%Config);
 use Win32;
 
 BEGIN {
@@ -44,11 +45,13 @@ ok(-d Win32::GetANSIPathName($dir));
 Win32::CreateFile($file);
 ok(-f Win32::GetANSIPathName($file));
 
-# readdir() returns ANSI form of Unicode filename
+# readdir() returns ANSI form of Unicode filename,
+# but on cygwin-1.7 the utf-8 form.
 ok(opendir(my $dh, Win32::GetANSIPathName($dir)));
 while ($_ = readdir($dh)) {
     next if /^\./;
-    ok($file, Win32::GetLongPathName("$dir\\$_"));
+    skip($^O eq 'cygwin' and $Config{osvers} ge "1.7" ? "do not test cygwin utf8 readdir()" : 0,
+         $file, Win32::GetLongPathName("$dir\\$_"));
 }
 closedir($dh);
 

Reply via email to