diff options
author | Koichi Sasada <ko1@atdot.net> | 2019-07-31 15:10:16 +0900 |
---|---|---|
committer | Koichi Sasada <ko1@atdot.net> | 2019-07-31 15:14:51 +0900 |
commit | 5f95edb7af68ce03732da4d49eee8d6ee87ef544 (patch) | |
tree | 096dd9476831f60db1ef98172e30ef3dd712536e /test | |
parent | cac44def0b0f0fdcd1aa8cf610e16a5506d2726b (diff) |
check SystemStackError
This recursive iteration test can cause SystemStackError so
check it correctly.
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_hash.rb | 16 |
1 files 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 |