From 0c215e34dfc51e0757322c8ef17d421c6dfb07e4 Mon Sep 17 00:00:00 2001 From: ko1 Date: Wed, 9 Nov 2011 10:02:22 +0000 Subject: * test/ruby/test_fiber.rb: add tests for r33684 (Fiber#resume). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 +++++- test/ruby/test_fiber.rb | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 4dfbc5d1ac..d2866a7fcb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,14 @@ +Wed Nov 9 19:00:44 2011 Koichi Sasada + + * test/ruby/test_fiber.rb: add tests for r33684 (Fiber#resume). + Wed Nov 9 16:40:49 2011 NAKAMURA Usaku * 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 +Thu Nov 9 13:17:25 2011 Koichi Sasada * 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 -- cgit v1.2.3