From e945532350dd070a6a6c9e2524e088f63dbdd83d Mon Sep 17 00:00:00 2001 From: naruse Date: Fri, 6 Jan 2012 07:06:22 +0000 Subject: * object.c (rb_inspect): raises Encoding::CompatibilityError if the result is incompatible with the default external encoding. [ruby-core:41931] [Bug #5848] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_m17n.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'test') diff --git a/test/ruby/test_m17n.rb b/test/ruby/test_m17n.rb index cc42514da2..fffcab3def 100644 --- a/test/ruby/test_m17n.rb +++ b/test/ruby/test_m17n.rb @@ -256,6 +256,21 @@ class TestM17N < Test::Unit::TestCase end end + def test_object_utf16_32_inspect + orig_int = Encoding.default_internal + orig_ext = Encoding.default_external + Encoding.default_internal = nil + Encoding.default_external = Encoding::UTF_8 + o = Object.new + [Encoding::UTF_16BE, Encoding::UTF_16LE, Encoding::UTF_32BE, Encoding::UTF_32LE].each do |e| + o.instance_eval "def inspect;'abc'.encode('#{e}');end" + assert_raise(Encoding::CompatibilityError) { [o].inspect } + end + ensure + Encoding.default_internal = orig_int + Encoding.default_external = orig_ext + end + def test_str_dump [ e("\xfe"), -- cgit v1.2.3