test-queue 0.6.0 → 0.7.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 +4 -4
- data/.github/workflows/test.yml +1 -0
- data/.gitignore +1 -0
- data/Appraisals +8 -0
- data/gemfiles/rspec4.gemfile +11 -0
- data/lib/test_queue/iterator.rb +1 -1
- data/lib/test_queue/runner/rspec.rb +2 -2
- data/lib/test_queue/runner.rb +7 -7
- data/test/rspec4.bats +56 -0
- data/test/samples/sample_shared_examples_for_spec.rb +2 -4
- data/test/samples/sample_spec.rb +3 -3
- data/test/samples/sample_split_spec.rb +1 -1
- data/test/samples/sample_use_shared_example1_spec.rb +1 -2
- data/test/samples/sample_use_shared_example2_spec.rb +1 -2
- data/test-queue.gemspec +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a84d8eb24f2cdebe31f18be510d2ba28c8633e963beb62e498ef32674df3f761
|
4
|
+
data.tar.gz: 9869e95d639d312876faa0264b238ee8702ec21f5e5bc0bfe0d149ea1d83df31
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a33f1567709b2fda5670cac096733d0ab1e029fe4db18aec6e1a449b00dd919e979167febe5a249b875d28e536224f0680dfb9810f2b585ea6064fcdb500dcf
|
7
|
+
data.tar.gz: 2486c1c8a85b4fe9fbe87eb98b7aa76ea97e01951f7e66d6db64e91dae57f8692f8354d036a7d57c342a46ab2833c6aac9fb7263b138fdb802d6993765a2e9b4
|
data/.github/workflows/test.yml
CHANGED
@@ -26,6 +26,7 @@ jobs:
|
|
26
26
|
- { name: minitest4, bats: test/minitest4.bats }
|
27
27
|
- { name: minitest5, bats: test/minitest5.bats }
|
28
28
|
- { name: rspec3, bats: test/rspec3.bats }
|
29
|
+
- { name: rspec4, bats: test/rspec4.bats }
|
29
30
|
- { name: testunit, bats: test/testunit.bats }
|
30
31
|
|
31
32
|
steps:
|
data/.gitignore
CHANGED
data/Appraisals
CHANGED
@@ -30,6 +30,14 @@ appraise "rspec3" do
|
|
30
30
|
gem 'rspec', '~> 3.12'
|
31
31
|
end
|
32
32
|
|
33
|
+
appraise "rspec4" do
|
34
|
+
gem 'rspec', github: 'rspec/rspec-metagem', branch: '4-0-dev'
|
35
|
+
gem 'rspec-core', github: 'rspec/rspec-core', branch: '4-0-dev'
|
36
|
+
gem 'rspec-expectations', github: 'rspec/rspec-expectations', branch: '4-0-dev'
|
37
|
+
gem 'rspec-mocks', github: 'rspec/rspec-mocks', branch: '4-0-dev'
|
38
|
+
gem 'rspec-support', github: 'rspec/rspec-support', branch: '4-0-dev'
|
39
|
+
end
|
40
|
+
|
33
41
|
appraise "testunit" do
|
34
42
|
gem 'test-unit'
|
35
43
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem 'rspec', github: 'rspec/rspec-metagem', branch: '4-0-dev'
|
6
|
+
gem 'rspec-core', github: 'rspec/rspec-core', branch: '4-0-dev'
|
7
|
+
gem 'rspec-expectations', github: 'rspec/rspec-expectations', branch: '4-0-dev'
|
8
|
+
gem 'rspec-mocks', github: 'rspec/rspec-mocks', branch: '4-0-dev'
|
9
|
+
gem 'rspec-support', github: 'rspec/rspec-support', branch: '4-0-dev'
|
10
|
+
|
11
|
+
gemspec path: "../"
|
data/lib/test_queue/iterator.rb
CHANGED
@@ -4,10 +4,10 @@ require 'rspec/core'
|
|
4
4
|
case ::RSpec::Core::Version::STRING.to_i
|
5
5
|
when 2
|
6
6
|
require_relative 'rspec2'
|
7
|
-
when 3
|
7
|
+
when 3, 4
|
8
8
|
require_relative 'rspec3'
|
9
9
|
else
|
10
|
-
fail 'requires rspec version 2 or
|
10
|
+
fail 'requires rspec version 2, 3, or 4'
|
11
11
|
end
|
12
12
|
|
13
13
|
module TestQueue
|
data/lib/test_queue/runner.rb
CHANGED
@@ -31,7 +31,7 @@ module TestQueue
|
|
31
31
|
attr_accessor :concurrency, :exit_when_done
|
32
32
|
attr_reader :stats
|
33
33
|
|
34
|
-
TOKEN_REGEX =
|
34
|
+
TOKEN_REGEX = /\ATOKEN=(\w+)/
|
35
35
|
|
36
36
|
def initialize(test_framework, concurrency=nil, socket=nil, relay=nil)
|
37
37
|
@test_framework = test_framework
|
@@ -251,7 +251,7 @@ module TestQueue
|
|
251
251
|
|
252
252
|
def start_master
|
253
253
|
if !relay?
|
254
|
-
if @socket =~
|
254
|
+
if @socket =~ /\A(?:(.+):)?(\d+)\z/
|
255
255
|
address = $1 || '0.0.0.0'
|
256
256
|
port = $2.to_i
|
257
257
|
@socket = "#$1:#$2"
|
@@ -500,7 +500,7 @@ module TestQueue
|
|
500
500
|
end
|
501
501
|
|
502
502
|
case cmd
|
503
|
-
when
|
503
|
+
when /\APOP (\S+) (\d+)/
|
504
504
|
hostname = $1
|
505
505
|
pid = Integer($2)
|
506
506
|
if awaiting_suites?
|
@@ -510,7 +510,7 @@ module TestQueue
|
|
510
510
|
sock.write(data)
|
511
511
|
@assignments[obj] = [hostname, pid]
|
512
512
|
end
|
513
|
-
when
|
513
|
+
when /\AREMOTE MASTER (\d+) ([\w\.-]+)(?: (.+))?/
|
514
514
|
num = $1.to_i
|
515
515
|
remote_master = $2
|
516
516
|
remote_master_message = $3
|
@@ -521,15 +521,15 @@ module TestQueue
|
|
521
521
|
message = "*** #{num} workers connected from #{remote_master} after #{Time.now-@start_time}s"
|
522
522
|
message << " " + remote_master_message if remote_master_message
|
523
523
|
STDERR.puts message
|
524
|
-
when
|
524
|
+
when /\AWORKER (\d+)/
|
525
525
|
data = sock.read($1.to_i)
|
526
526
|
worker = Marshal.load(data)
|
527
527
|
worker_completed(worker)
|
528
528
|
remote_workers -= 1
|
529
|
-
when
|
529
|
+
when /\ANEW SUITE (.+)/
|
530
530
|
suite_name, path = Marshal.load($1)
|
531
531
|
enqueue_discovered_suite(suite_name, path)
|
532
|
-
when
|
532
|
+
when /\AKABOOM/
|
533
533
|
# worker reporting an abnormal number of test failures;
|
534
534
|
# stop everything immediately and report the results.
|
535
535
|
break
|
data/test/rspec4.bats
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
load "testlib"
|
2
|
+
|
3
|
+
setup() {
|
4
|
+
require_gem "rspec" "4.0.0.pre"
|
5
|
+
}
|
6
|
+
|
7
|
+
@test "rspec-queue succeeds when all specs pass" {
|
8
|
+
run bundle exec rspec-queue ./test/samples/sample_spec.rb
|
9
|
+
assert_status 0
|
10
|
+
assert_output_contains "Starting test-queue master"
|
11
|
+
assert_output_contains "16 examples, 0 failures"
|
12
|
+
assert_output_contains "16 examples, 0 failures"
|
13
|
+
}
|
14
|
+
|
15
|
+
@test "rspec-queue succeeds all specs pass in the default spec directory even if directory path is omitted" {
|
16
|
+
run bundle exec rspec-queue
|
17
|
+
assert_status 0
|
18
|
+
assert_output_contains "Starting test-queue master"
|
19
|
+
assert_output_contains "6 examples, 0 failures"
|
20
|
+
assert_output_contains "0 examples, 0 failures"
|
21
|
+
}
|
22
|
+
|
23
|
+
@test "rspec-queue fails when a spec fails" {
|
24
|
+
export FAIL=1
|
25
|
+
run bundle exec rspec-queue ./test/samples/sample_spec.rb
|
26
|
+
assert_status 1
|
27
|
+
assert_output_contains "1) RSpecFailure fails"
|
28
|
+
assert_output_contains "RSpecFailure fails"
|
29
|
+
assert_output_contains "expected: :bar"
|
30
|
+
assert_output_contains "got: :foo"
|
31
|
+
}
|
32
|
+
|
33
|
+
@test "TEST_QUEUE_SPLIT_GROUPS splits splittable groups" {
|
34
|
+
export TEST_QUEUE_SPLIT_GROUPS=true
|
35
|
+
run bundle exec rspec-queue ./test/samples/sample_split_spec.rb
|
36
|
+
assert_status 0
|
37
|
+
|
38
|
+
assert_output_matches '\[ 1\] +1 example, 0 failures'
|
39
|
+
assert_output_matches '\[ 2\] +1 example, 0 failures'
|
40
|
+
}
|
41
|
+
|
42
|
+
@test "TEST_QUEUE_SPLIT_GROUPS does not split unsplittable groups" {
|
43
|
+
export TEST_QUEUE_SPLIT_GROUPS=true
|
44
|
+
export NOSPLIT=1
|
45
|
+
run bundle exec rspec-queue ./test/samples/sample_split_spec.rb
|
46
|
+
assert_status 0
|
47
|
+
|
48
|
+
assert_output_contains "2 examples, 0 failures"
|
49
|
+
assert_output_contains "0 examples, 0 failures"
|
50
|
+
}
|
51
|
+
|
52
|
+
@test "rspec-queue supports shared example groups" {
|
53
|
+
run bundle exec rspec-queue ./test/samples/sample_use_shared_example1_spec.rb \
|
54
|
+
./test/samples/sample_use_shared_example2_spec.rb
|
55
|
+
assert_status 0
|
56
|
+
}
|
data/test/samples/sample_spec.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'rspec'
|
2
2
|
|
3
|
-
describe 'RSpecEqual' do
|
3
|
+
RSpec::describe 'RSpecEqual' do
|
4
4
|
it 'checks equality' do
|
5
5
|
expect(1).to eq 1
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
9
9
|
30.times do |i|
|
10
|
-
describe "RSpecSleep(#{i})" do
|
10
|
+
RSpec::describe "RSpecSleep(#{i})" do
|
11
11
|
it "sleeps" do
|
12
12
|
start = Time.now
|
13
13
|
sleep(0.25)
|
@@ -17,7 +17,7 @@ end
|
|
17
17
|
end
|
18
18
|
|
19
19
|
if ENV["FAIL"]
|
20
|
-
describe 'RSpecFailure' do
|
20
|
+
RSpec::describe 'RSpecFailure' do
|
21
21
|
it 'fails' do
|
22
22
|
expect(:foo).to eq :bar
|
23
23
|
end
|
data/test-queue.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aman Gupta
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: minitest/rspec parallel test runner for CI environments
|
14
14
|
email: ruby@tmm1.net
|
@@ -37,6 +37,7 @@ files:
|
|
37
37
|
- gemfiles/minitest5.gemfile
|
38
38
|
- gemfiles/rspec2.gemfile
|
39
39
|
- gemfiles/rspec3.gemfile
|
40
|
+
- gemfiles/rspec4.gemfile
|
40
41
|
- gemfiles/testunit.gemfile
|
41
42
|
- lib/test-queue.rb
|
42
43
|
- lib/test_queue.rb
|
@@ -62,6 +63,7 @@ files:
|
|
62
63
|
- test/minitest5.bats
|
63
64
|
- test/rspec2.bats
|
64
65
|
- test/rspec3.bats
|
66
|
+
- test/rspec4.bats
|
65
67
|
- test/samples/features/bad.feature
|
66
68
|
- test/samples/features/sample.feature
|
67
69
|
- test/samples/features/sample2.feature
|
@@ -98,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
100
|
- !ruby/object:Gem::Version
|
99
101
|
version: '0'
|
100
102
|
requirements: []
|
101
|
-
rubygems_version: 3.
|
103
|
+
rubygems_version: 3.3.26
|
102
104
|
signing_key:
|
103
105
|
specification_version: 4
|
104
106
|
summary: parallel test runner
|