diff options
Diffstat (limited to 'spec/ruby/library')
-rw-r--r-- | spec/ruby/library/fiber/transfer_spec.rb | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/spec/ruby/library/fiber/transfer_spec.rb b/spec/ruby/library/fiber/transfer_spec.rb index d13053666c..fa094a022d 100644 --- a/spec/ruby/library/fiber/transfer_spec.rb +++ b/spec/ruby/library/fiber/transfer_spec.rb @@ -42,9 +42,18 @@ describe "Fiber#transfer" do fiber2.transfer.should == [:fiber2_start, :fiber1, :fiber2_end] end - it "raises a FiberError when transferring to a Fiber which resumes itself" do - fiber = Fiber.new { fiber.resume } - -> { fiber.transfer }.should raise_error(FiberError) + ruby_version_is ''...'2.7' do + it "raises a FiberError when transferring to a Fiber which resumes itself" do + fiber = Fiber.new { fiber.resume } + -> { fiber.transfer }.should raise_error(FiberError) + end + end + + ruby_version_is '2.7' do + it "allows transferring to a Fiber which resumes itself" do + fiber = Fiber.new { fiber.resume 1 } + fiber.transfer.should == 1 + end end it "works if Fibers in different Threads each transfer to a Fiber in the same Thread" do |