diff options
Diffstat (limited to 'test/ruby')
| -rw-r--r-- | test/ruby/test_box.rb | 36 | ||||
| -rw-r--r-- | test/ruby/test_string.rb | 3 |
2 files changed, 37 insertions, 2 deletions
diff --git a/test/ruby/test_box.rb b/test/ruby/test_box.rb index a39979109f..a425c5eb7d 100644 --- a/test/ruby/test_box.rb +++ b/test/ruby/test_box.rb @@ -1180,4 +1180,40 @@ class TestBox < Test::Unit::TestCase assert_equal :box2, box2.eval("Class.new { include Math }.new.box2_test") end; end + + def test_method_invalidation_between_boxes_1 + assert_separately([ENV_ENABLE_BOX], __FILE__, __LINE__, "#{<<~"begin;"}\n#{<<~'end;'}", ignore_stderr: true) + begin; + b = Ruby::Box.new + b.eval(<<~'RUBY') + Module.prepend(Module.new) + class C; end + class D < C; end + def C.===(x) = true + RUBY + + assert String === "x" + assert b # to prevent GCing b + end; + end + + def test_method_invalidation_between_boxes_2 + assert_separately([ENV_ENABLE_BOX], __FILE__, __LINE__, "#{<<~"begin;"}\n#{<<~'end;'}", ignore_stderr: true) + begin; + PrepM = Module.new + Module.prepend(PrepM) + Module.new.include?(Module.new) + + b = Ruby::Box.new + b.eval(<<~'RUBY') + Module.class_eval { def _test_method; end } + + class C; end + class D < C; end + def C.include?(x) = true + RUBY + + Module.new.include?(Module.new) + end; + end end diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index 67a19e1ae0..aedfc93e5d 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -851,7 +851,6 @@ CODE assert_equal(S("\u{AB}"), S('"\\u00AB"').undump) assert_equal(S("\u{ABC}"), S('"\\u0ABC"').undump) assert_equal(S("\uABCD"), S('"\\uABCD"').undump) - assert_equal(S("\uABCD"), S('"\\uABCD"').undump) assert_equal(S("\u{ABCDE}"), S('"\\u{ABCDE}"').undump) assert_equal(S("\u{10ABCD}"), S('"\\u{10ABCD}"').undump) assert_equal(S("\u{ABCDE 10ABCD}"), S('"\\u{ABCDE 10ABCD}"').undump) @@ -2629,7 +2628,7 @@ CODE end def test_upcase - assert_equal(S("HELLO"), S("hello").upcase) + assert_equal(S("HELLO"), S("helLO").upcase) assert_equal(S("HELLO"), S("hello").upcase) assert_equal(S("HELLO"), S("HELLO").upcase) assert_equal(S("ABC HELLO 123"), S("abc HELLO 123").upcase) |
