From: "luislavena (Luis Lavena)" <luislavena@...> Date: 2012-07-22T00:33:24+09:00 Subject: [ruby-core:46596] [ruby-trunk - Bug #6765][Assigned] test_filename_utf8_raw_name and test_filename_euc_jp (test_dir_m17n.rb) fail on non-JapaneseWindows Issue #6765 has been updated by luislavena (Luis Lavena). Status changed from Feedback to Assigned Target version set to 2.0.0 =begin Thank you Oleg, I can confirm new patch works: # Running tests: Finished tests in 0.785099s, 15.2847 tests/s, 28.0219 assertions/s. 12 tests, 22 assertions, 0 failures, 0 errors, 0 skips ruby -v: ruby 2.0.0dev (2012-07-21 trunk 36486) [i386-mingw32] Nobu, Usa, can I commit? Any with Japanese-Windows to double check? Thank you =end ---------------------------------------- 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#change-28260 Author: os97673 (Oleg Sukhodolsky) Status: Assigned Priority: Normal Assignee: luislavena (Luis Lavena) Category: test Target version: 2.0.0 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/