File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change
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
You can’t perform that action at this time.
0 commit comments