rspec-abq 1.0.0 → 1.0.2
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 +4 -4
- data/lib/rspec/abq/extensions.rb +10 -1
- data/lib/rspec/abq/test_case.rb +1 -1
- data/lib/rspec/abq/version.rb +1 -1
- data/lib/rspec/abq.rb +26 -7
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47cb306f3ccae9028f66868c94bad15520483ba37a240b91a15c95799c004eea
|
4
|
+
data.tar.gz: 9f9b96ff40ddb02f1d545e4c8f0032b436f099c90e8fc2dc779df79b11e7e8c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5600f59bdb6bf10da3676b3333218d06138df69fd98c6b46b4f63cd6582d7ba41b41513482697279b49844799db3efede34156836f5a30f276f1d1021ec70642
|
7
|
+
data.tar.gz: fbe86282d566d1db465018261ce241aa2a24c70109fd0878cb33a70814d89f1898c7255cd0ed71e6e83eb6d9fdb6eeceb8d8652a64bc2a841cf44155506080fb
|
data/lib/rspec/abq/extensions.rb
CHANGED
@@ -125,7 +125,16 @@ module RSpec
|
|
125
125
|
end
|
126
126
|
end
|
127
127
|
|
128
|
-
|
128
|
+
if Abq.target_test_case != Abq::TestCase.end_marker
|
129
|
+
warn "Hit end of test run without being on end marker. Target test case is #{Abq.target_test_case.inspect}"
|
130
|
+
example_passed = false
|
131
|
+
end
|
132
|
+
|
133
|
+
if Gem::Version.new(RSpec::Core::Version::STRING) >= Gem::Version.new("3.10.0")
|
134
|
+
exit_code(examples_passed)
|
135
|
+
else
|
136
|
+
example_passed ? 0 : @configuration.failure_exit_code
|
137
|
+
end
|
129
138
|
end
|
130
139
|
|
131
140
|
private
|
data/lib/rspec/abq/test_case.rb
CHANGED
@@ -37,7 +37,7 @@ module RSpec
|
|
37
37
|
# @param outer [Array<String>] parsed scope
|
38
38
|
# @param inner [Array<String>] parsed scope
|
39
39
|
def self.scope_leftover(outer, inner)
|
40
|
-
inner[outer.length
|
40
|
+
inner[outer.length..] || []
|
41
41
|
end
|
42
42
|
|
43
43
|
# @param group [RSpec::Core::ExampleGroup]
|
data/lib/rspec/abq/version.rb
CHANGED
data/lib/rspec/abq.rb
CHANGED
@@ -29,14 +29,30 @@ module RSpec
|
|
29
29
|
ABQ_RSPEC_PID = "ABQ_RSPEC_PID"
|
30
30
|
|
31
31
|
# The [ABQ protocol version message](https://www.notion.so/rwx/ABQ-Worker-Native-Test-Runner-IPC-Interface-0959f5a9144741d798ac122566a3d887#8587ee4fd01e41ec880dcbe212562172).
|
32
|
-
# Must be sent to ABQ_SOCKET on startup.
|
33
32
|
# @!visibility private
|
34
|
-
|
33
|
+
PROTOCOL_VERSION = {
|
35
34
|
type: "abq_protocol_version",
|
36
35
|
major: 0,
|
37
36
|
minor: 1
|
38
37
|
}
|
39
38
|
|
39
|
+
# The [rspec-abq specification](https://www.notion.so/rwx/ABQ-Worker-Native-Test-Runner-IPC-Interface-0959f5a9144741d798ac122566a3d887#8587ee4fd01e41ec880dcbe212562172).
|
40
|
+
# @!visibility private
|
41
|
+
NATIVE_RUNNER_SPECIFICATION = {
|
42
|
+
type: "abq_native_runner_specification",
|
43
|
+
name: "rspec-abq",
|
44
|
+
version: RSpec::Abq::VERSION
|
45
|
+
}
|
46
|
+
|
47
|
+
# The [rpsec-abq spawned message](https://www.notion.so/rwx/ABQ-Worker-Native-Test-Runner-IPC-Interface-0959f5a9144741d798ac122566a3d887#8587ee4fd01e41ec880dcbe212562172).
|
48
|
+
# Must be sent to ABQ_SOCKET on startup.
|
49
|
+
# @!visibility private
|
50
|
+
NATIVE_RUNNER_SPAWNED_MESSAGE = {
|
51
|
+
type: "abq_native_runner_spawned",
|
52
|
+
protocol_version: PROTOCOL_VERSION,
|
53
|
+
runner_specification: NATIVE_RUNNER_SPECIFICATION
|
54
|
+
}
|
55
|
+
|
40
56
|
# The [ABQ initialization success
|
41
57
|
# message](https://www.notion.so/rwx/ABQ-Worker-Native-Test-Runner-IPC-Interface-0959f5a9144741d798ac122566a3d887#538582a3049f4934a5cb563d815c1247)
|
42
58
|
# Must be sent after receiving the ABQ initialization message.
|
@@ -113,10 +129,10 @@ module RSpec
|
|
113
129
|
init_message = protocol_read
|
114
130
|
protocol_write(INIT_SUCCESS_MESSAGE)
|
115
131
|
# TODO: delete the check for empty init_meta when https://github.com/rwx-research/abq/pull/216 is merged
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
132
|
+
return true if init_message["fast_exit"]
|
133
|
+
|
134
|
+
Ordering.setup!(init_message["init_meta"], RSpec.configuration)
|
135
|
+
fetch_next_example
|
120
136
|
nil
|
121
137
|
end
|
122
138
|
|
@@ -124,7 +140,10 @@ module RSpec
|
|
124
140
|
# @!visibility private
|
125
141
|
def self.socket
|
126
142
|
@socket ||= TCPSocket.new(*ENV[ABQ_SOCKET].split(":")).tap do |socket|
|
127
|
-
|
143
|
+
# Messages sent to/received from the ABQ worker should be done so ASAP.
|
144
|
+
# Since we're on a local network, we don't care about packet reduction here.
|
145
|
+
socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
|
146
|
+
protocol_write(NATIVE_RUNNER_SPAWNED_MESSAGE, socket)
|
128
147
|
end
|
129
148
|
end
|
130
149
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-abq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ayaz Hafiz
|
@@ -31,6 +31,20 @@ dependencies:
|
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 3.13.0
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: pry
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.14.1
|
41
|
+
type: :development
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.14.1
|
34
48
|
description: RSpec::Abq is an rspec plugin that replaces its ordering with one that
|
35
49
|
is controlled by abq. It allows for parallelization of rspec on a single machine
|
36
50
|
or across multiple workers.
|