diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/rinda/test_rinda.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/rinda/test_rinda.rb b/test/rinda/test_rinda.rb index 1991ab6abf..c20f06017f 100644 --- a/test/rinda/test_rinda.rb +++ b/test/rinda/test_rinda.rb @@ -642,7 +642,32 @@ class TestRingServer < Test::Unit::TestCase end def test_do_reply + # temporaliry redefine Rinda::RingServer#do_reply for a debugging purpose + Rinda::RingServer.class_eval do + alias do_reply_back do_reply + def do_reply + tuple = @ts.take([:lookup_ring, nil], @renewer) + Thread.new do + begin + tuple[1].call(@ts) + rescue + p :in_thread, $!, *$!.backtrace + nil + end + end + rescue + p :out_of_thread, $!, *$!.backtrace + end + end + with_timeout(30) {_test_do_reply} + + ensure + Rinda::RingServer.class_eval do + remove_method :do_reply + alias do_reply do_reply_back + remove_method :do_reply_back + end end def _test_do_reply |