From 9b3e241bfccf13cd12a532f9d7bbdf0a39b724ca Mon Sep 17 00:00:00 2001 From: seki Date: Tue, 18 Nov 2008 18:05:28 +0000 Subject: fixed fails occasionally [ruby-dev:37119]. thanks, shinichiro.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rinda/test_rinda.rb | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'test/rinda/test_rinda.rb') diff --git a/test/rinda/test_rinda.rb b/test/rinda/test_rinda.rb index 27da9fc7ea..0b1c512bf1 100644 --- a/test/rinda/test_rinda.rb +++ b/test/rinda/test_rinda.rb @@ -317,8 +317,8 @@ module TupleSpaceTestModule def test_core_03_notify notify1 = @ts.notify(nil, [:req, Integer]) - notify2 = @ts.notify(nil, [:ans, Integer], 5) - notify3 = @ts.notify(nil, {"message"=>String, "name"=>String}, 5) + notify2 = @ts.notify(nil, [:ans, Integer], 8) + notify3 = @ts.notify(nil, {"message"=>String, "name"=>String}, 8) @ts.write({"message"=>"first", "name"=>"3"}, 3) @ts.write({"message"=>"second", "name"=>"1"}, 1) @@ -347,18 +347,18 @@ module TupleSpaceTestModule result = nil lv = 0 n = 0 - notify2.each do |ev| + notify2.each do |ev, tuple| n += 1 - if ev[0] == 'write' + if ev == 'write' lv = lv + 1 - elsif ev[0] == 'take' + elsif ev == 'take' lv = lv - 1 - elsif ev[0] == 'close' + elsif ev == 'close' result = [lv, n] break end assert(lv >= 0) - assert_equal([:ans, 10], ev[1]) + assert_equal([:ans, 10], tuple) end result end @@ -385,13 +385,15 @@ module TupleSpaceTestModule sleep(4) assert_equal(10, thread_join(taker)) + # notify2 must not expire until this @ts.take. + # sleep(4) might be short enough for the timeout of notify2 (8 secs) tuple = @ts.take([:ans, nil]) assert_equal(10, tuple[1]) assert_equal([], @ts.read_all([nil, nil])) - + notify1.cancel - sleep(3) # notify2 expired - + sleep(7) # notify2 expired (sleep(4)+sleep(7) > 8) + assert_equal([0, 11], thread_join(listener1)) assert_equal([0, 3], thread_join(listener2)) -- cgit v1.2.3