From 5f95edb7af68ce03732da4d49eee8d6ee87ef544 Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Wed, 31 Jul 2019 15:10:16 +0900 Subject: [PATCH] check SystemStackError This recursive iteration test can cause SystemStackError so check it correctly. --- test/ruby/test_hash.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/test/ruby/test_hash.rb b/test/ruby/test_hash.rb index d973b1f763..0549886317 100644 --- a/test/ruby/test_hash.rb +++ b/test/ruby/test_hash.rb @@ -1729,20 +1729,24 @@ class TestHash < Test::Unit::TestCase end def test_huge_iter_level - h = @cls[a: 1] - assert_raise(RuntimeError){ - hrec(h, 1000){ h[:c] = 3 } - } + nrec = 200 h = @cls[a: 1] - hrec(h, 1000){} + hrec(h, nrec){} h[:c] = 3 assert_equal(3, h[:c]) h = @cls[a: 1] h.freeze # set hidden attribute for a frozen object - hrec(h, 1000){} + hrec(h, nrec){} assert_equal(1, h.size) + + h = @cls[a: 1] + assert_raise(RuntimeError){ + hrec(h, nrec){ h[:c] = 3 } + } + rescue SystemStackError => e + # ignore end class TestSubHash < TestHash