From: "luislavena (Luis Lavena)" Date: 2012-07-21T22:40:53+09:00 Subject: [ruby-core:46590] [ruby-trunk - Bug #6765][Feedback] 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 Open to Feedback =begin Thank you Oleg for the patch. I just tested it, but still have a failure: Before patch: # Running tests: [ 4/10] TestDir_M17N#test_filename_euc_jp = 0.08 s 1) Failure: test_filename_euc_jp(TestDir_M17N) [C:/Users/Worker/Code/ruby/ruby/test/ruby/test_dir_m17n.rb:170]: ruby exit status is not success: # [ 9/10] TestDir_M17N#test_filename_utf8_raw_name = 0.08 s 2) Failure: test_filename_utf8_raw_name(TestDir_M17N) [C:/Users/Worker/Code/ruby/ruby/test/ruby/test_dir_m17n.rb:190]: ruby exit status is not success: # Finished tests in 0.657084s, 15.2188 tests/s, 27.3938 assertions/s. 10 tests, 18 assertions, 2 failures, 0 errors, 0 skips ruby -v: ruby 2.0.0dev (2012-07-21 trunk 36486) [i386-mingw32] After patch: # Running tests: [ 4/12] TestDir_M17N#test_filename_euc_jp = 0.08 s 1) Failure: test_filename_euc_jp(TestDir_M17N) [C:/Users/Worker/Code/ruby/ruby/test/ruby/test_dir_m17n.rb:196]: ruby exit status is not success: # Finished tests in 0.809603s, 14.8221 tests/s, 27.1738 assertions/s. 12 tests, 22 assertions, 1 failures, 0 errors, 0 skips ruby -v: ruby 2.0.0dev (2012-07-21 trunk 36486) [i386-mingw32] Seems like (({test_filename_euc_jp})) is still failing. My codepage is 1252, changing it to 1251 seems to solve the issue, which indicate some minor issue with this test. Can you confirm with chcp 1252? 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-28254 Author: os97673 (Oleg Sukhodolsky) Status: Feedback 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/