Forum: Ruby-core [ruby-trunk - Bug #7076][Open] TestUnicodeEscape#test_basic failure on Windows

Posted by h.shirosaki (Hiroshi Shirosaki) (Guest)
on 2012-09-27 14:44
(Received via mailing list)
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
Posted by U.Nakamura (Guest)
on 2012-09-28 02:49
(Received via mailing list)
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,
Posted by Hiroshi Shirosaki (Guest)
on 2012-09-29 13:31
(Received via mailing list)
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.
Posted by lancel (lancel lancel) (Guest)
on 2012-11-22 02:47
(Received via mailing list)
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
No account? Register here.