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/