summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorshirosaki <shirosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-07-31 20:58:08 +0000
committershirosaki <shirosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-07-31 20:58:08 +0000
commitf52eefece1c24503c607be7b059fe82639f128f7 (patch)
tree506ed1efa4ff799a397188d4f205ae2f0acea197 /test/ruby
parent59c139306dc6d28d3f150743560ffda176191a58 (diff)
test_rubyoptions.rb: fix test failure on Windows
* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_encoding): Fix test_encoding failure on Windows. With chcp 65001, 1252 and 437, test_encoding failed. Test result depends on locale because LANG environment variable doesn't affect locale on Windows. [ruby-core:46872] [Bug #6813] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_rubyoptions.rb13
1 files changed, 10 insertions, 3 deletions
diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb
index 1f2732cebb..87eb049baa 100644
--- a/test/ruby/test_rubyoptions.rb
+++ b/test/ruby/test_rubyoptions.rb
@@ -199,14 +199,21 @@ class TestRubyOptions < Test::Unit::TestCase
end
def test_encoding
- assert_in_out_err(%w(-Eutf-8), "p '\u3042'", [], /invalid multibyte char/)
-
assert_in_out_err(%w(--encoding), "", [], /missing argument for --encoding/)
assert_in_out_err(%w(--encoding test_ruby_test_rubyoptions_foobarbazqux), "", [],
/unknown encoding name - test_ruby_test_rubyoptions_foobarbazqux \(RuntimeError\)/)
- assert_in_out_err(%w(--encoding utf-8), "p '\u3042'", [], /invalid multibyte char/)
+ if /mswin|mingw/ =~ RUBY_PLATFORM &&
+ (str = "\u3042".force_encoding(Encoding.find("locale"))).valid_encoding?
+ # This result depends on locale because LANG=C doesn't affect locale
+ # on Windows.
+ out, err = [str], []
+ else
+ out, err = [], /invalid multibyte char/
+ end
+ assert_in_out_err(%w(-Eutf-8), "puts '\u3042'", out, err)
+ assert_in_out_err(%w(--encoding utf-8), "puts '\u3042'", out, err)
end
def test_syntax_check