diff options
Diffstat (limited to 'spec/ruby/core/fiber/yield_spec.rb')
-rw-r--r-- | spec/ruby/core/fiber/yield_spec.rb | 76 |
1 files changed, 37 insertions, 39 deletions
diff --git a/spec/ruby/core/fiber/yield_spec.rb b/spec/ruby/core/fiber/yield_spec.rb index d002b29cf6..4e241d5921 100644 --- a/spec/ruby/core/fiber/yield_spec.rb +++ b/spec/ruby/core/fiber/yield_spec.rb @@ -1,51 +1,49 @@ require_relative '../../spec_helper' -with_feature :fiber do - describe "Fiber.yield" do - it "passes control to the Fiber's caller" do - step = 0 - fiber = Fiber.new { step = 1; Fiber.yield; step = 2; Fiber.yield; step = 3 } - fiber.resume - step.should == 1 - fiber.resume - step.should == 2 - end - - it "returns its arguments to the caller" do - fiber = Fiber.new { true; Fiber.yield :glark; true } - fiber.resume.should == :glark - fiber.resume - end +describe "Fiber.yield" do + it "passes control to the Fiber's caller" do + step = 0 + fiber = Fiber.new { step = 1; Fiber.yield; step = 2; Fiber.yield; step = 3 } + fiber.resume + step.should == 1 + fiber.resume + step.should == 2 + end - it "returns nil to the caller if given no arguments" do - fiber = Fiber.new { true; Fiber.yield; true } - fiber.resume.should be_nil - fiber.resume - end + it "returns its arguments to the caller" do + fiber = Fiber.new { true; Fiber.yield :glark; true } + fiber.resume.should == :glark + fiber.resume + end - it "returns to the Fiber the value of the #resume call that invoked it" do - fiber = Fiber.new { Fiber.yield.should == :caller } - fiber.resume - fiber.resume :caller - end + it "returns nil to the caller if given no arguments" do + fiber = Fiber.new { true; Fiber.yield; true } + fiber.resume.should be_nil + fiber.resume + end - it "does not propagate or reraise a rescued exception" do - fiber = Fiber.new do - begin - raise "an error in a Fiber" - rescue - Fiber.yield :first - end + it "returns to the Fiber the value of the #resume call that invoked it" do + fiber = Fiber.new { Fiber.yield.should == :caller } + fiber.resume + fiber.resume :caller + end - :second + it "does not propagate or reraise a rescued exception" do + fiber = Fiber.new do + begin + raise "an error in a Fiber" + rescue + Fiber.yield :first end - fiber.resume.should == :first - fiber.resume.should == :second + :second end - it "raises a FiberError if called from the root Fiber" do - lambda{ Fiber.yield }.should raise_error(FiberError) - end + fiber.resume.should == :first + fiber.resume.should == :second + end + + it "raises a FiberError if called from the root Fiber" do + lambda{ Fiber.yield }.should raise_error(FiberError) end end |