ruby-changes:8742
From: seki <ko1@a...>
Date: Wed, 19 Nov 2008 03:14:33 +0900 (JST)
Subject: [ruby-changes:8742] Ruby:r20277 (ruby_1_8): fixed fails occasionally . thanks, shinichiro.h.
seki 2008-11-19 03:14:19 +0900 (Wed, 19 Nov 2008) New Revision: 20277 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20277 Log: fixed fails occasionally [ruby-dev:37119]. thanks, shinichiro.h. Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/test/rinda/test_rinda.rb Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 20276) +++ ruby_1_8/ChangeLog (revision 20277) @@ -1,3 +1,8 @@ +Wed Nov 19 03:13:36 2008 Masatoshi SEKI <m_seki@m...> + + * test/rinda/test_rinda.rb: fixed fails occasionally [ruby-dev:37119]. + thanks, shinichiro.h. + Wed Nov 19 00:58:55 2008 Masatoshi SEKI <m_seki@m...> * lib/drb/drb.rb (DRbConn::alive?): fixed NoMethodError problem Index: ruby_1_8/test/rinda/test_rinda.rb =================================================================== --- ruby_1_8/test/rinda/test_rinda.rb (revision 20276) +++ ruby_1_8/test/rinda/test_rinda.rb (revision 20277) @@ -317,8 +317,8 @@ 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 @@ 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 @@ 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)) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/