Skip to content

Commit 1b287a8

Browse files
committed
Add spec for Fiber#inspect
1 parent f807ae5 commit 1b287a8

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

spec/ruby/core/fiber/inspect_spec.rb

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
require_relative '../../spec_helper'
2+
require 'fiber'
3+
4+
describe "Fiber#inspect" do
5+
describe "status" do
6+
it "is resumed for the root Fiber of a Thread" do
7+
inspected = Thread.new { Fiber.current.inspect }.value
8+
inspected.should =~ /\A#<Fiber:0x\h+ .*\(resumed\)>\z/
9+
end
10+
11+
it "is created for a Fiber which did not run yet" do
12+
inspected = Fiber.new {}.inspect
13+
inspected.should =~ /\A#<Fiber:0x\h+ .+ \(created\)>\z/
14+
end
15+
16+
it "is resumed for a Fiber which was resumed" do
17+
inspected = Fiber.new { Fiber.current.inspect }.resume
18+
inspected.should =~ /\A#<Fiber:0x\h+ .+ \(resumed\)>\z/
19+
end
20+
21+
ruby_version_is "3.0" do
22+
it "is resumed for a Fiber which was transferred" do
23+
inspected = Fiber.new { Fiber.current.inspect }.transfer
24+
inspected.should =~ /\A#<Fiber:0x\h+ .+ \(resumed\)>\z/
25+
end
26+
end
27+
28+
it "is suspended for a Fiber which was resumed and yielded" do
29+
inspected = Fiber.new { Fiber.yield }.tap(&:resume).inspect
30+
inspected.should =~ /\A#<Fiber:0x\h+ .+ \(suspended\)>\z/
31+
end
32+
33+
it "is terminated for a Fiber which has terminated" do
34+
inspected = Fiber.new {}.tap(&:resume).inspect
35+
inspected.should =~ /\A#<Fiber:0x\h+ .+ \(terminated\)>\z/
36+
end
37+
end
38+
end

0 commit comments

Comments
 (0)