fiber_scheduler_spec 0.0.2 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bea63eb7f423a7ef93c852d5ffce145a2d05af9a6001a9e361c1c9e2cb28f3f2
|
4
|
+
data.tar.gz: 4f798d9b7d7957581589fb2548391bff36c036f9724b8f2a0a086c19398a0314
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f254954f399c78bcc69d8635de1c0df05d8e9ab953feb4667965b86a5e4d3b5be38dc4e33ab451cb2b730e403fe8f163e50af07eaa5f4789b2903e5fe3d035cd
|
7
|
+
data.tar.gz: 7545ee8ddc87eeb12677ea46f4cc8e788ad4392b5acdd5c51a854bfcce680cd2294fc3ef4b84a95bb2026a2936d7e517f9babf7e8ad2296a800194bed09b7eba
|
@@ -25,7 +25,7 @@ RSpec.shared_examples FiberSchedulerSpec::AddressResolve do
|
|
25
25
|
Fiber.schedule do
|
26
26
|
order << 3
|
27
27
|
Addrinfo.getaddrinfo("example.com", 80, :AF_INET, :STREAM)
|
28
|
-
order <<
|
28
|
+
order << 5
|
29
29
|
end
|
30
30
|
order << 4
|
31
31
|
end
|
@@ -41,7 +41,7 @@ RSpec.shared_examples FiberSchedulerSpec::AddressResolve do
|
|
41
41
|
it "behaves async" do
|
42
42
|
setup
|
43
43
|
|
44
|
-
expect(order).to eq
|
44
|
+
expect(order).to eq [1, 2, 3, 4, 5, 5]
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|
@@ -8,14 +8,10 @@ end
|
|
8
8
|
RSpec.shared_examples FiberSchedulerSpec::Fiber do
|
9
9
|
include_context FiberSchedulerSpec::Context
|
10
10
|
|
11
|
-
|
11
|
+
shared_examples :examples do
|
12
12
|
let(:fibers) { [] }
|
13
13
|
let(:fiber) { fibers.first }
|
14
14
|
|
15
|
-
def operations
|
16
|
-
fibers << Fiber.schedule {}
|
17
|
-
end
|
18
|
-
|
19
15
|
it "calls #fiber" do
|
20
16
|
expect_any_instance_of(scheduler_class)
|
21
17
|
.to receive(:fiber).once
|
@@ -32,7 +28,7 @@ RSpec.shared_examples FiberSchedulerSpec::Fiber do
|
|
32
28
|
setup
|
33
29
|
after = ObjectSpace.each_object(Fiber).count
|
34
30
|
|
35
|
-
# The after - before is > 1 with
|
31
|
+
# The 'after - before' is > 1 with some selectors.
|
36
32
|
expect(after - before).to be >= 1
|
37
33
|
ensure
|
38
34
|
GC.enable
|
@@ -45,4 +41,28 @@ RSpec.shared_examples FiberSchedulerSpec::Fiber do
|
|
45
41
|
expect(fiber).not_to be_blocking
|
46
42
|
end
|
47
43
|
end
|
44
|
+
|
45
|
+
context "Fiber.schedule with an empty block" do
|
46
|
+
def operations
|
47
|
+
fibers << Fiber.schedule {}
|
48
|
+
end
|
49
|
+
|
50
|
+
include_examples :examples
|
51
|
+
end
|
52
|
+
|
53
|
+
context "Fiber.schedule with a non-blocking operation" do
|
54
|
+
def operations
|
55
|
+
fibers << Fiber.schedule { sleep 0 }
|
56
|
+
end
|
57
|
+
|
58
|
+
include_examples :examples
|
59
|
+
end
|
60
|
+
|
61
|
+
context "Fiber.schedule with a blocking operation" do
|
62
|
+
def operations
|
63
|
+
fibers << Fiber.schedule { "." }
|
64
|
+
end
|
65
|
+
|
66
|
+
include_examples :examples
|
67
|
+
end
|
48
68
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fiber_scheduler_spec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bruno Sutic
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: async
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: standard
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|