From: "os97673 (Oleg Sukhodolsky)" <os97673@...>
Date: 2012-07-21T21:04:05+09:00
Subject: [ruby-core:46589] [ruby-trunk - Bug #6765][Open] test_filename_utf8_raw_name and  test_filename_euc_jp (test_dir_m17n.rb) fail on non-JapaneseWindows


Issue #6765 has been reported by os97673 (Oleg Sukhodolsky).

----------------------------------------
Bug #6765: test_filename_utf8_raw_name and  test_filename_euc_jp (test_dir_m17n.rb) fail on non-JapaneseWindows
https://bugs.ruby-lang.org/issues/6765

Author: os97673 (Oleg Sukhodolsky)
Status: Open
Priority: Normal
Assignee: luislavena (Luis Lavena)
Category: test
Target version: 
ruby -v: ruby 2.0.0dev (2012-07-21) [i386-mingw32]


It looks like the problem is related to http://bugs.ruby-lang.org/issues/4799
The problem is that these test use "\u3042" as a file name to create and to test its name in ASCII-8BIT mode.
But it expects "\x82\x40" as a result, but this is "\u3042".encode('sjis') ('jsis' is a filesystem encoding
on Japanese Windows).
To fix the test I do changed it to calculate expected file name using original name and filesystem's encoding.
Also, I've added two more tests with Windows-1251 and Windows-1252 symbols as file name.
And they does demonstrated another problem of the test on Windows: result of the function Ruby uses to 
get binary version of filename (WideCharToMultiByte) is not deterministric (see  
http://msdn.microsoft.com/en-us/library/windows/desktop/dd374047(v=vs.85).aspx#SC_char_conv_func for more details).
This is why I've added additional check to which test to check if at least we have expected file name in case we use fylesystem's encoding.



-- 
http://bugs.ruby-lang.org/