From 406d4bb59905903cf7b9fa62c2d590e963edda5c Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Fri, 15 Dec 2023 11:21:39 +0900 Subject: add a test proposed at https://bugs.ruby-lang.org/issues/20050#note-5 --- test/ruby/test_hash.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_hash.rb b/test/ruby/test_hash.rb index 8658e6ddc2..70daea0ef1 100644 --- a/test/ruby/test_hash.rb +++ b/test/ruby/test_hash.rb @@ -2311,4 +2311,26 @@ class TestHashOnly < Test::Unit::TestCase end end end + + def test_ar_hash_to_st_hash + assert_normal_exit("#{<<~"begin;"}\n#{<<~'end;'}", 'https://bugs.ruby-lang.org/issues/20050#note-5') + begin; + srand(0) + class Foo + def to_a + [] + end + + def hash + $h.delete($h.keys.sample) if rand < 0.1 + to_a.hash + end + end + + 1000.times do + $h = {} + (0..10).each {|i| $h[Foo.new] ||= {} } + end + end; + end end -- cgit v1.2.3