diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-02-11 11:28:31 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-02-12 15:05:29 +0900 |
commit | 52cdf400efaecc0f5e1d1f70f22dc45212e03c4c (patch) | |
tree | 162768d517e60c8bba893936bfce8b77ab55caca /test/ruby/test_encoding.rb | |
parent | 921916ff9e2940f28d932af84c5b2a2e222219d0 (diff) |
Workaround of instance variable on hidden object
Since 9d9aea7fe50f6340829faa105d9ffe08ebaee658, generic instance
variables need `iv_index_tbl` in the object's class. As hidden
objects, however, have no class, access to the variables causes a
segfault. Get rid of that segfault by raising an exception, for
the time being.
Diffstat (limited to 'test/ruby/test_encoding.rb')
-rw-r--r-- | test/ruby/test_encoding.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/ruby/test_encoding.rb b/test/ruby/test_encoding.rb index 282ac6b1ae..6d0665ae93 100644 --- a/test/ruby/test_encoding.rb +++ b/test/ruby/test_encoding.rb @@ -65,6 +65,18 @@ class TestEncoding < Test::Unit::TestCase END; end + def test_extra_encoding + assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}") + begin; + 200.times {|i| + Encoding::UTF_8.replicate("dummy#{i}") + } + e = Encoding.list.last + format = "%d".force_encoding(e) + assert_raise(TypeError) {format % 0} + end; + end + def test_dummy_p assert_equal(true, Encoding::ISO_2022_JP.dummy?) assert_equal(false, Encoding::UTF_8.dummy?) |