diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/ruby/test_hash.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/ruby/test_hash.rb b/test/ruby/test_hash.rb index 8d36cf657f..639c0105c0 100644 --- a/test/ruby/test_hash.rb +++ b/test/ruby/test_hash.rb @@ -2246,4 +2246,24 @@ class TestHash < 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 |
