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/