diff options
Diffstat (limited to 'spec/ruby/library/fiber/resume_spec.rb')
-rw-r--r-- | spec/ruby/library/fiber/resume_spec.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/spec/ruby/library/fiber/resume_spec.rb b/spec/ruby/library/fiber/resume_spec.rb index 39d14bdda0..8b7c104a6f 100644 --- a/spec/ruby/library/fiber/resume_spec.rb +++ b/spec/ruby/library/fiber/resume_spec.rb @@ -10,6 +10,12 @@ describe "Fiber#resume" do fiber2.resume -> { fiber2.resume }.should raise_error(FiberError) end + + it "raises a FiberError if the Fiber attempts to resume a resuming fiber" do + root_fiber = Fiber.current + fiber1 = Fiber.new { root_fiber.resume } + -> { fiber1.resume }.should raise_error(FiberError, /double resume/) + end end ruby_version_is '3.0' do @@ -19,5 +25,11 @@ describe "Fiber#resume" do fiber2.resume.should == 10 fiber2.resume.should == 20 end + + it "raises a FiberError if the Fiber attempts to resume a resuming fiber" do + root_fiber = Fiber.current + fiber1 = Fiber.new { root_fiber.resume } + -> { fiber1.resume }.should raise_error(FiberError, /attempt to resume a resuming fiber/) + end end end |