diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | test/ruby/test_fiber.rb | 23 |
2 files changed, 28 insertions, 1 deletions
@@ -1,10 +1,14 @@ +Wed Nov 9 19:00:44 2011 Koichi Sasada <ko1@atdot.net> + + * test/ruby/test_fiber.rb: add tests for r33684 (Fiber#resume). + Wed Nov 9 16:40:49 2011 NAKAMURA Usaku <usa@ruby-lang.org> * win32/win32.c (unixtime_to_filetime): should check the return value of localtime(). reported by snowjail at gmail.com. [ruby-dev:44838] [Bug #5596] -Thu Nov 10 05:17:25 2011 Koichi Sasada <ko1@atdot.net> +Thu Nov 9 13:17:25 2011 Koichi Sasada <ko1@atdot.net> * cont.c (rb_fiber_m_transfer, rb_fiber_resume): prohibit using "resume" after "transfer" method are used. You should not mix diff --git a/test/ruby/test_fiber.rb b/test/ruby/test_fiber.rb index ed7ecc71ae..7cf4a6b119 100644 --- a/test/ruby/test_fiber.rb +++ b/test/ruby/test_fiber.rb @@ -220,5 +220,28 @@ class TestFiber < Test::Unit::TestCase end assert_equal("Can't call on top of Fiber or Thread", error.message, bug5083) end + + def test_prohibit_resume_transfered_fiber + assert_raise(FiberError){ + root_fiber = Fiber.current + f = Fiber.new{ + root_fiber.transfer + } + f.transfer + f.resume + } + assert_raise(FiberError){ + g=nil + f=Fiber.new{ + g.resume + g.resume + } + g=Fiber.new{ + f.resume + f.resume + } + f.transfer + } + end end |