aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_m17n.rb
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-01-06 07:06:22 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-01-06 07:06:22 +0000
commite945532350dd070a6a6c9e2524e088f63dbdd83d (patch)
tree38d5d47ba5f052a812f5aae41e2848c08b274b5e /test/ruby/test_m17n.rb
parent4729382e4efa9cf464ad51dcfc31c7be03ea466b (diff)
downloadruby-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/ruby/test_m17n.rb')
-rw-r--r--test/ruby/test_m17n.rb15
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"),