Issue #7076 has been reported by h.shirosaki (Hiroshi Shirosaki). ---------------------------------------- Bug #7076: TestUnicodeEscape#test_basic failure on Windows https://bugs.ruby-lang.org/issues/7076 Author: h.shirosaki (Hiroshi Shirosaki) Status: Open Priority: Normal Assignee: Category: test Target version: ruby -v: ruby 2.0.0dev (2012-09-27 trunk 37040) [i386-mingw32] =begin This was originally reported at rubyinstaller-list by Jon. With chcp 437, TestUnicodeEscape#test_basic fails with invalid byte sequence in UTF-8. http://pastie.org/4688083 I got the following test failure with chcp 437 on Windows 7. 1) Failure: test_basic(TestUnicodeEscape) [c:/Users/hiroshi/work/ruby/test/ruby/test_unicode_escape.rb:50]: Expected /^("?)\u00FC\1$/ to match "\"??\"\n". echo command on Windows seems not to work properly against non-ascii characters with all code page. I suggest a patch to use ruby instead of echo. This patch works fine with chcp 437, 1252 and 65001. Jon also confirmed this. diff --git a/test/ruby/test_unicode_escape.rb b/test/ruby/test_unicode_escape.rb index 088f81c..2c437d9 100644 --- a/test/ruby/test_unicode_escape.rb +++ b/test/ruby/test_unicode_escape.rb @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- require 'test/unit' +require_relative 'envutil' class TestUnicodeEscape < Test::Unit::TestCase def test_basic @@ -47,7 +48,7 @@ EOS # \u in %x strings assert_match(/^("?)A\1$/, `echo "\u0041"`) #" assert_match(/^("?)A\1$/, %x{echo "\u0041"}) #" - assert_match(/^("?)ü\1$/, `echo "\u{FC}"`.force_encoding("utf-8")) #" + assert_match(/^("?)ü\1$/, `#{EnvUtil.rubybin} -e "puts \\"\u{FC}\\""`.force_encoding("utf-8")) #" # \u in quoted symbols assert_equal(:A, :"\u0041")=end
on 2012-09-27 14:44
on 2012-09-28 02:49
Hello,
In message "[ruby-core:47709] [ruby-trunk - Bug #7076][Open]
TestUnicodeEscape#test_basic failure on Windows"
on Sep.27,2012 21:44:25, <h.shirosaki@gmail.com> wrote:
> This patch works fine with chcp 437, 1252 and 65001. Jon also confirmed this.
So, commit it, please.
Generally, you can commit a patch by judgment of you, as long as
it does not change the specification.
If it is change of tests like this time, please do not hesitate to do.
Regards,
on 2012-09-29 13:31
On Fri, Sep 28, 2012 at 9:49 AM, U.Nakamura <usa@garbagecollect.jp> wrote: > it does not change the specification. > If it is change of tests like this time, please do not hesitate to do. > Hello, Thank you for comments. The patch had a problem, but I think it was fixed. And I have other patches for test issues which I see on my local. So committed those. With those patches test-all results seems fine even on Windows XP with gcc version 4.7.2 rubenvb build.
on 2012-11-22 02:47
Issue #7076 has been updated by lancel (lancel lancel). =begin All of us have read the stories of excite people's ((<lancel|URL:http://www.lancel1.com/>)) mind, the hero of the story to live only for a very limited time, sometimes up to a year, sometimes as short as one day. But we always want to know, the doomed choose how to spend their ((<sac lancel|URL:http://www.lancel1.com/>)) last days. Of course, I say is of free men who have a choice, not whose sphere of activities is strictly.458gyu854 =end ---------------------------------------- Bug #7076: TestUnicodeEscape#test_basic failure on Windows https://bugs.ruby-lang.org/issues/7076#change-33427 Author: h.shirosaki (Hiroshi Shirosaki) Status: Closed Priority: Normal Assignee: Category: test Target version: ruby -v: ruby 2.0.0dev (2012-09-27 trunk 37040) [i386-mingw32] =begin This was originally reported at rubyinstaller-list by Jon. With chcp 437, TestUnicodeEscape#test_basic fails with invalid byte sequence in UTF-8. http://pastie.org/4688083 I got the following test failure with chcp 437 on Windows 7. 1) Failure: test_basic(TestUnicodeEscape) [c:/Users/hiroshi/work/ruby/test/ruby/test_unicode_escape.rb:50]: Expected /^("?)\u00FC\1$/ to match "\"??\"\n". echo command on Windows seems not to work properly against non-ascii characters with all code page. I suggest a patch to use ruby instead of echo. This patch works fine with chcp 437, 1252 and 65001. Jon also confirmed this. diff --git a/test/ruby/test_unicode_escape.rb b/test/ruby/test_unicode_escape.rb index 088f81c..2c437d9 100644 --- a/test/ruby/test_unicode_escape.rb +++ b/test/ruby/test_unicode_escape.rb @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- require 'test/unit' +require_relative 'envutil' class TestUnicodeEscape < Test::Unit::TestCase def test_basic @@ -47,7 +48,7 @@ EOS # \u in %x strings assert_match(/^("?)A\1$/, `echo "\u0041"`) #" assert_match(/^("?)A\1$/, %x{echo "\u0041"}) #" - assert_match(/^("?)ü\1$/, `echo "\u{FC}"`.force_encoding("utf-8")) #" + assert_match(/^("?)ü\1$/, `#{EnvUtil.rubybin} -e "puts \\"\u{FC}\\""`.force_encoding("utf-8")) #" # \u in quoted symbols assert_equal(:A, :"\u0041")=end
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.