test-queue 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|