diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-01-06 07:06:22 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-01-06 07:06:22 +0000 |
commit | e945532350dd070a6a6c9e2524e088f63dbdd83d (patch) | |
tree | 38d5d47ba5f052a812f5aae41e2848c08b274b5e /test | |
parent | 4729382e4efa9cf464ad51dcfc31c7be03ea466b (diff) | |
download | ruby-e945532350dd070a6a6c9e2524e088f63dbdd83d.tar.gz |
* 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
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_m17n.rb | 15 |
1 files changed, 15 insertions, 0 deletions
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"), |