diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_hash.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/ruby/test_hash.rb b/test/ruby/test_hash.rb index e998c52621..4da8e234de 100644 --- a/test/ruby/test_hash.rb +++ b/test/ruby/test_hash.rb @@ -930,7 +930,9 @@ class TestHash < Test::Unit::TestCase h.clear c.call end + end + def test_callcc_iter_level bug9105 = '[ruby-dev:47803] [Bug #9105]' h = @cls[1=>2, 3=>4] c = nil @@ -948,6 +950,22 @@ class TestHash < Test::Unit::TestCase end end + def test_threaded_iter_level + bug9105 = '[ruby-dev:47807] [Bug #9105]' + h = @cls[1=>2] + 2.times.map { + f = false + th = Thread.start {h.each {f = true; sleep}} + Thread.pass until f + Thread.pass until th.stop? + th + }.each {|th| th.run; th.join} + assert_nothing_raised(RuntimeError, bug9105) do + h[5] = 6 + end + assert_equal(6, h[5], bug9105) + end + def test_compare_by_identity a = "foo" assert_not_predicate(@cls[], :compare_by_identity?) |