test-queue 0.4.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/test.yml +93 -0
  3. data/.gitignore +5 -0
  4. data/Appraisals +35 -0
  5. data/Gemfile +4 -2
  6. data/LICENSE +21 -0
  7. data/README.md +19 -19
  8. data/Rakefile +14 -0
  9. data/{bin → exe}/cucumber-queue +4 -0
  10. data/{bin → exe}/minitest-queue +4 -0
  11. data/{bin → exe}/rspec-queue +4 -0
  12. data/{bin → exe}/testunit-queue +4 -0
  13. data/gemfiles/cucumber1_3.gemfile +9 -0
  14. data/gemfiles/cucumber2_4.gemfile +9 -0
  15. data/gemfiles/minitest4.gemfile +7 -0
  16. data/gemfiles/minitest5.gemfile +7 -0
  17. data/gemfiles/rspec2.gemfile +8 -0
  18. data/gemfiles/rspec3.gemfile +7 -0
  19. data/gemfiles/testunit.gemfile +7 -0
  20. data/lib/test-queue.rb +1 -1
  21. data/lib/test_queue/runner/minitest.rb +2 -2
  22. data/lib/test_queue/runner/minitest4.rb +1 -1
  23. data/lib/test_queue/runner/minitest5.rb +8 -1
  24. data/lib/test_queue/runner/puppet_lint.rb +1 -1
  25. data/lib/test_queue/runner/rspec.rb +8 -7
  26. data/lib/test_queue/runner/rspec2.rb +6 -0
  27. data/lib/test_queue/runner/rspec3.rb +6 -0
  28. data/lib/test_queue/runner/sample.rb +2 -2
  29. data/lib/test_queue/runner/testunit.rb +1 -1
  30. data/lib/test_queue/runner.rb +33 -28
  31. data/lib/test_queue.rb +2 -2
  32. data/script/bootstrap +1 -0
  33. data/spec/stats_spec.rb +3 -0
  34. data/test/minitest4.bats +1 -1
  35. data/test/minitest5.bats +15 -5
  36. data/test/{rspec.bats → rspec2.bats} +4 -4
  37. data/test/rspec3.bats +56 -0
  38. data/test/sleepy_runner.rb +3 -1
  39. data/test-queue.gemspec +5 -5
  40. metadata +26 -37
  41. data/.travis.yml +0 -18
  42. data/Gemfile-cucumber1-3 +0 -4
  43. data/Gemfile-cucumber1-3.lock +0 -33
  44. data/Gemfile-cucumber2-4 +0 -4
  45. data/Gemfile-cucumber2-4.lock +0 -37
  46. data/Gemfile-minitest4 +0 -3
  47. data/Gemfile-minitest4.lock +0 -19
  48. data/Gemfile-minitest5 +0 -3
  49. data/Gemfile-minitest5.lock +0 -19
  50. data/Gemfile-rspec2-1 +0 -3
  51. data/Gemfile-rspec2-1.lock +0 -27
  52. data/Gemfile-rspec3-0 +0 -3
  53. data/Gemfile-rspec3-0.lock +0 -31
  54. data/Gemfile-rspec3-1 +0 -3
  55. data/Gemfile-rspec3-1.lock +0 -31
  56. data/Gemfile-rspec3-2 +0 -3
  57. data/Gemfile-rspec3-2.lock +0 -32
  58. data/Gemfile-testunit +0 -3
  59. data/Gemfile-testunit.lock +0 -21
  60. data/Gemfile.lock +0 -41
  61. data/script/cibuild +0 -19
  62. data/script/spec +0 -7
@@ -2,8 +2,8 @@ require 'set'
2
2
  require 'socket'
3
3
  require 'fileutils'
4
4
  require 'securerandom'
5
- require 'test_queue/stats'
6
- require 'test_queue/test_framework'
5
+ require_relative 'stats'
6
+ require_relative 'test_framework'
7
7
 
8
8
  module TestQueue
9
9
  class Worker
@@ -37,6 +37,7 @@ module TestQueue
37
37
  @test_framework = test_framework
38
38
  @stats = Stats.new(stats_file)
39
39
 
40
+ @early_failure_limit = nil
40
41
  if ENV['TEST_QUEUE_EARLY_FAILURE_LIMIT']
41
42
  begin
42
43
  @early_failure_limit = Integer(ENV['TEST_QUEUE_EARLY_FAILURE_LIMIT'])
@@ -47,12 +48,12 @@ module TestQueue
47
48
 
48
49
  @procline = $0
49
50
 
50
- @whitelist = if forced = ENV['TEST_QUEUE_FORCE']
51
+ @allowlist = if forced = ENV['TEST_QUEUE_FORCE']
51
52
  forced.split(/\s*,\s*/)
52
53
  else
53
54
  []
54
55
  end
55
- @whitelist.freeze
56
+ @allowlist.freeze
56
57
 
57
58
  all_files = @test_framework.all_suite_files.to_set
58
59
  @queue = @stats.all_suites
@@ -60,12 +61,12 @@ module TestQueue
60
61
  .sort_by { |suite| -suite.duration }
61
62
  .map { |suite| [suite.name, suite.path] }
62
63
 
63
- if @whitelist.any?
64
- @queue.select! { |suite_name, path| @whitelist.include?(suite_name) }
65
- @queue.sort_by! { |suite_name, path| @whitelist.index(suite_name) }
64
+ if @allowlist.any?
65
+ @queue.select! { |suite_name, path| @allowlist.include?(suite_name) }
66
+ @queue.sort_by! { |suite_name, path| @allowlist.index(suite_name) }
66
67
  end
67
68
 
68
- @awaited_suites = Set.new(@whitelist)
69
+ @awaited_suites = Set.new(@allowlist)
69
70
  @original_queue = Set.new(@queue).freeze
70
71
 
71
72
  @workers = {}
@@ -85,7 +86,7 @@ module TestQueue
85
86
  raise ArgumentError, "Worker count (#{@concurrency}) must be greater than 0"
86
87
  end
87
88
 
88
- @slave_connection_timeout =
89
+ @relay_connection_timeout =
89
90
  (ENV['TEST_QUEUE_RELAY_TIMEOUT'] && ENV['TEST_QUEUE_RELAY_TIMEOUT'].to_i) ||
90
91
  30
91
92
 
@@ -100,7 +101,12 @@ module TestQueue
100
101
  relay ||
101
102
  ENV['TEST_QUEUE_RELAY']
102
103
 
103
- @slave_message = ENV["TEST_QUEUE_SLAVE_MESSAGE"] if ENV.has_key?("TEST_QUEUE_SLAVE_MESSAGE")
104
+ @remote_master_message = if ENV.has_key?("TEST_QUEUE_REMOTE_MASTER_MESSAGE")
105
+ ENV["TEST_QUEUE_REMOTE_MASTER_MESSAGE"]
106
+ elsif ENV.has_key?("TEST_QUEUE_SLAVE_MESSAGE")
107
+ warn("`TEST_QUEUE_SLAVE_MESSAGE` is deprecated. Use `TEST_QUEUE_REMOTE_MASTER_MESSAGE` instead.")
108
+ ENV["TEST_QUEUE_SLAVE_MESSAGE"]
109
+ end
104
110
 
105
111
  if @relay == @socket
106
112
  STDERR.puts "*** Detected TEST_QUEUE_RELAY == TEST_QUEUE_SOCKET. Disabling relay mode."
@@ -265,10 +271,10 @@ module TestQueue
265
271
  return unless relay?
266
272
 
267
273
  sock = connect_to_relay
268
- message = @slave_message ? " #{@slave_message}" : ""
274
+ message = @remote_master_message ? " #{@remote_master_message}" : ""
269
275
  message.gsub!(/(\r|\n)/, "") # Our "protocol" is newline-separated
270
276
  sock.puts("TOKEN=#{@run_token}")
271
- sock.puts("SLAVE #{@concurrency} #{Socket.gethostname} #{message}")
277
+ sock.puts("REMOTE MASTER #{@concurrency} #{Socket.gethostname} #{message}")
272
278
  response = sock.gets.strip
273
279
  unless response == "OK"
274
280
  STDERR.puts "*** Got non-OK response from master: #{response}"
@@ -312,9 +318,9 @@ module TestQueue
312
318
  # distributes them to remote masters.
313
319
  return if relay?
314
320
 
315
- # No need to discover suites if all whitelisted suites are already
321
+ # No need to discover suites if all allowlisted suites are already
316
322
  # queued.
317
- return if @whitelist.any? && @awaited_suites.empty?
323
+ return if @allowlist.any? && @awaited_suites.empty?
318
324
 
319
325
  @discovering_suites_pid = fork do
320
326
  terminate = false
@@ -340,7 +346,7 @@ module TestQueue
340
346
  def awaiting_suites?
341
347
  case
342
348
  when @awaited_suites.any?
343
- # We're waiting to find all the whitelisted suites so we can run them
349
+ # We're waiting to find all the allowlisted suites so we can run them
344
350
  # in the correct order.
345
351
  true
346
352
  when @queue.empty? && !!@discovering_suites_pid
@@ -353,7 +359,7 @@ module TestQueue
353
359
  end
354
360
 
355
361
  def enqueue_discovered_suite(suite_name, path)
356
- if @whitelist.any? && !@whitelist.include?(suite_name)
362
+ if @allowlist.any? && !@allowlist.include?(suite_name)
357
363
  return
358
364
  end
359
365
 
@@ -371,9 +377,9 @@ module TestQueue
371
377
  @queue.unshift [suite_name, path]
372
378
 
373
379
  if @awaited_suites.delete?(suite_name) && @awaited_suites.empty?
374
- # We've found all the whitelisted suites. Sort the queue to match the
375
- # whitelist.
376
- @queue.sort_by! { |suite_name, path| @whitelist.index(suite_name) }
380
+ # We've found all the allowlisted suites. Sort the queue to match the
381
+ # allowlist.
382
+ @queue.sort_by! { |suite_name, path| @allowlist.index(suite_name) }
377
383
 
378
384
  kill_suite_discovery_process("INT")
379
385
  end
@@ -485,7 +491,7 @@ module TestQueue
485
491
  cmd = sock.gets.strip
486
492
 
487
493
  token = token[TOKEN_REGEX, 1]
488
- # If we have a slave from a different test run, respond with "WRONG RUN", and it will consider the test run done.
494
+ # If we have a remote master from a different test run, respond with "WRONG RUN", and it will consider the test run done.
489
495
  if token != @run_token
490
496
  message = token.nil? ? "Worker sent no token to master" : "Worker from run #{token} connected to master"
491
497
  STDERR.puts "*** #{message} for run #{@run_token}; ignoring."
@@ -495,7 +501,6 @@ module TestQueue
495
501
 
496
502
  case cmd
497
503
  when /^POP (\S+) (\d+)/
498
- # If we have a slave from a different test run, don't respond, and it will consider the test run done.
499
504
  hostname = $1
500
505
  pid = Integer($2)
501
506
  if awaiting_suites?
@@ -505,16 +510,16 @@ module TestQueue
505
510
  sock.write(data)
506
511
  @assignments[obj] = [hostname, pid]
507
512
  end
508
- when /^SLAVE (\d+) ([\w\.-]+)(?: (.+))?/
513
+ when /^REMOTE MASTER (\d+) ([\w\.-]+)(?: (.+))?/
509
514
  num = $1.to_i
510
- slave = $2
511
- slave_message = $3
515
+ remote_master = $2
516
+ remote_master_message = $3
512
517
 
513
518
  sock.write("OK\n")
514
519
  remote_workers += num
515
520
 
516
- message = "*** #{num} workers connected from #{slave} after #{Time.now-@start_time}s"
517
- message << " " + slave_message if slave_message
521
+ message = "*** #{num} workers connected from #{remote_master} after #{Time.now-@start_time}s"
522
+ message << " " + remote_master_message if remote_master_message
518
523
  STDERR.puts message
519
524
  when /^WORKER (\d+)/
520
525
  data = sock.read($1.to_i)
@@ -546,12 +551,12 @@ module TestQueue
546
551
  def connect_to_relay
547
552
  sock = nil
548
553
  start = Time.now
549
- puts "Attempting to connect for #{@slave_connection_timeout}s..."
554
+ puts "Attempting to connect for #{@relay_connection_timeout}s..."
550
555
  while sock.nil?
551
556
  begin
552
557
  sock = TCPSocket.new(*@relay.split(':'))
553
558
  rescue Errno::ECONNREFUSED => e
554
- raise e if Time.now - start > @slave_connection_timeout
559
+ raise e if Time.now - start > @relay_connection_timeout
555
560
  puts "Master not yet available, sleeping..."
556
561
  sleep 0.5
557
562
  end
data/lib/test_queue.rb CHANGED
@@ -4,5 +4,5 @@ if !IO.respond_to?(:binread)
4
4
  end
5
5
  end
6
6
 
7
- require 'test_queue/iterator'
8
- require 'test_queue/runner'
7
+ require_relative 'test_queue/iterator'
8
+ require_relative 'test_queue/runner'
data/script/bootstrap CHANGED
@@ -10,3 +10,4 @@ mkdir tmp
10
10
  mkdir -p vendor/bats
11
11
  curl --silent --location --show-error https://github.com/sstephenson/bats/archive/v0.4.0.tar.gz | tar -xz -C tmp
12
12
  tmp/bats-0.4.0/install.sh "$ROOT/vendor/bats"
13
+ rm -rf tmp
data/spec/stats_spec.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  require "fileutils"
2
2
  require "tempfile"
3
+
4
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
5
+
3
6
  require "test_queue/stats"
4
7
 
5
8
  RSpec.describe TestQueue::Stats do
data/test/minitest4.bats CHANGED
@@ -1,7 +1,7 @@
1
1
  load "testlib"
2
2
 
3
3
  setup() {
4
- require_gem "minitest" ">= 4.0"
4
+ require_gem "minitest" "~> 4.0"
5
5
  }
6
6
 
7
7
  @test "minitest-queue succeeds when all tests pass" {
data/test/minitest5.bats CHANGED
@@ -3,7 +3,7 @@ load "testlib"
3
3
  SCRATCH=tmp/minitest5-tests
4
4
 
5
5
  setup() {
6
- require_gem "minitest" ">= 5.0"
6
+ require_gem "minitest" "~> 5.0"
7
7
  rm -rf $SCRATCH
8
8
  mkdir -p $SCRATCH
9
9
  }
@@ -27,12 +27,12 @@ teardown() {
27
27
  assert_output_contains "MiniTestFailure#test_fail"
28
28
  }
29
29
 
30
- @test "TEST_QUEUE_FORCE whitelists certain tests" {
31
- export TEST_QUEUE_WORKERS=1 TEST_QUEUE_FORCE="MiniTestSleep21,MiniTestSleep8"
30
+ @test "TEST_QUEUE_FORCE allowlists certain tests" {
31
+ export TEST_QUEUE_WORKERS=1 TEST_QUEUE_FORCE="MiniTestSleep11,MiniTestSleep8"
32
32
  run bundle exec minitest-queue ./test/samples/*_minitest5.rb
33
33
  assert_status 0
34
34
  assert_output_contains "Starting test-queue master"
35
- assert_output_contains "MiniTestSleep21"
35
+ assert_output_contains "MiniTestSleep11"
36
36
  assert_output_contains "MiniTestSleep8"
37
37
  refute_output_contains "MiniTestSleep9"
38
38
  }
@@ -68,7 +68,7 @@ assert_test_queue_force_ordering() {
68
68
  }
69
69
 
70
70
  @test "minitest-queue fails if TEST_QUEUE_FORCE specifies nonexistent tests" {
71
- export TEST_QUEUE_WORKERS=1 TEST_QUEUE_FORCE="MiniTestSleep21,DoesNotExist"
71
+ export TEST_QUEUE_WORKERS=1 TEST_QUEUE_FORCE="MiniTestSleep11,DoesNotExist"
72
72
  run bundle exec minitest-queue ./test/samples/*_minitest5.rb
73
73
  assert_status 1
74
74
  assert_output_contains "Failed to discover DoesNotExist specified in TEST_QUEUE_FORCE"
@@ -128,6 +128,16 @@ assert_test_queue_force_ordering() {
128
128
  assert_output_contains "MiniTestFailure#test_fail"
129
129
  }
130
130
 
131
+ @test "multi-master central master prints out remote master messages" {
132
+ export TEST_QUEUE_RELAY_TOKEN=$(date | cksum | cut -d' ' -f1)
133
+ TEST_QUEUE_RELAY=0.0.0.0:12345 TEST_QUEUE_REMOTE_MASTER_MESSAGE="hello from remote master" bundle exec minitest-queue ./test/samples/sample_minitest5.rb &
134
+ TEST_QUEUE_SOCKET=0.0.0.0:12345 run bundle exec minitest-queue ./test/samples/sample_minitest5.rb
135
+ wait
136
+
137
+ assert_status 0
138
+ assert_output_contains "hello from remote master"
139
+ }
140
+
131
141
  @test "recovers from child processes dying in an unorderly way" {
132
142
  export KILL=1
133
143
  run bundle exec minitest-queue ./test/samples/sample_minitest5.rb
@@ -1,7 +1,7 @@
1
1
  load "testlib"
2
2
 
3
3
  setup() {
4
- require_gem "rspec" ">= 2.0"
4
+ require_gem "rspec" "~> 2.0"
5
5
  }
6
6
 
7
7
  @test "rspec-queue succeeds when all specs pass" {
@@ -15,7 +15,9 @@ setup() {
15
15
  run bundle exec rspec-queue ./test/samples/sample_spec.rb
16
16
  assert_status 1
17
17
  assert_output_contains "1) RSpecFailure fails"
18
- assert_output_contains "Failure/Error: expect(:foo).to eq :bar"
18
+ assert_output_contains "RSpecFailure fails"
19
+ assert_output_contains "expected: :bar"
20
+ assert_output_contains "got: :foo"
19
21
  }
20
22
 
21
23
  @test "TEST_QUEUE_SPLIT_GROUPS splits splittable groups" {
@@ -41,6 +43,4 @@ setup() {
41
43
  run bundle exec rspec-queue ./test/samples/sample_use_shared_example1_spec.rb \
42
44
  ./test/samples/sample_use_shared_example2_spec.rb
43
45
  assert_status 0
44
-
45
46
  }
46
-
data/test/rspec3.bats ADDED
@@ -0,0 +1,56 @@
1
+ load "testlib"
2
+
3
+ setup() {
4
+ require_gem "rspec" "~> 3.0"
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
+ }
@@ -1,9 +1,11 @@
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
2
+
1
3
  require 'test_queue'
2
4
  require 'test_queue/runner/minitest'
3
5
 
4
6
  class SleepyTestRunner < TestQueue::Runner::MiniTest
5
7
  def after_fork(num)
6
- if ENV['SLEEP_AS_RELAY'] && relay?
8
+ if ENV['SLEEP_AS_RELAY'] && relay?
7
9
  sleep 5
8
10
  elsif ENV['SLEEP_AS_MASTER'] && !relay?
9
11
  sleep 5
data/test-queue.gemspec CHANGED
@@ -1,17 +1,17 @@
1
- spec = Gem::Specification.new do |s|
1
+ Gem::Specification.new do |s|
2
2
  s.name = 'test-queue'
3
- s.version = '0.4.2'
3
+ s.version = '0.6.0'
4
+ s.required_ruby_version = '>= 2.7.0'
4
5
  s.summary = 'parallel test runner'
5
6
  s.description = 'minitest/rspec parallel test runner for CI environments'
6
7
 
7
- s.homepage = "http://github.com/tmm1/test-queue"
8
+ s.homepage = "https://github.com/tmm1/test-queue"
8
9
 
9
10
  s.authors = ["Aman Gupta"]
10
11
  s.email = "ruby@tmm1.net"
11
12
  s.license = 'MIT'
12
13
 
13
- s.has_rdoc = false
14
- s.bindir = 'bin'
14
+ s.bindir = 'exe'
15
15
  s.executables << 'rspec-queue'
16
16
  s.executables << 'minitest-queue'
17
17
  s.executables << 'testunit-queue'
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.2
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aman Gupta
8
- autorequire:
9
- bindir: bin
8
+ autorequire:
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-17 00:00:00.000000000 Z
11
+ date: 2023-04-17 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
@@ -20,33 +20,24 @@ executables:
20
20
  extensions: []
21
21
  extra_rdoc_files: []
22
22
  files:
23
+ - ".github/workflows/test.yml"
23
24
  - ".gitignore"
24
- - ".travis.yml"
25
+ - Appraisals
25
26
  - Gemfile
26
- - Gemfile-cucumber1-3
27
- - Gemfile-cucumber1-3.lock
28
- - Gemfile-cucumber2-4
29
- - Gemfile-cucumber2-4.lock
30
- - Gemfile-minitest4
31
- - Gemfile-minitest4.lock
32
- - Gemfile-minitest5
33
- - Gemfile-minitest5.lock
34
- - Gemfile-rspec2-1
35
- - Gemfile-rspec2-1.lock
36
- - Gemfile-rspec3-0
37
- - Gemfile-rspec3-0.lock
38
- - Gemfile-rspec3-1
39
- - Gemfile-rspec3-1.lock
40
- - Gemfile-rspec3-2
41
- - Gemfile-rspec3-2.lock
42
- - Gemfile-testunit
43
- - Gemfile-testunit.lock
44
- - Gemfile.lock
27
+ - LICENSE
45
28
  - README.md
46
- - bin/cucumber-queue
47
- - bin/minitest-queue
48
- - bin/rspec-queue
49
- - bin/testunit-queue
29
+ - Rakefile
30
+ - exe/cucumber-queue
31
+ - exe/minitest-queue
32
+ - exe/rspec-queue
33
+ - exe/testunit-queue
34
+ - gemfiles/cucumber1_3.gemfile
35
+ - gemfiles/cucumber2_4.gemfile
36
+ - gemfiles/minitest4.gemfile
37
+ - gemfiles/minitest5.gemfile
38
+ - gemfiles/rspec2.gemfile
39
+ - gemfiles/rspec3.gemfile
40
+ - gemfiles/testunit.gemfile
50
41
  - lib/test-queue.rb
51
42
  - lib/test_queue.rb
52
43
  - lib/test_queue/iterator.rb
@@ -64,14 +55,13 @@ files:
64
55
  - lib/test_queue/stats.rb
65
56
  - lib/test_queue/test_framework.rb
66
57
  - script/bootstrap
67
- - script/cibuild
68
- - script/spec
69
58
  - spec/stats_spec.rb
70
59
  - test-queue.gemspec
71
60
  - test/cucumber.bats
72
61
  - test/minitest4.bats
73
62
  - test/minitest5.bats
74
- - test/rspec.bats
63
+ - test/rspec2.bats
64
+ - test/rspec3.bats
75
65
  - test/samples/features/bad.feature
76
66
  - test/samples/features/sample.feature
77
67
  - test/samples/features/sample2.feature
@@ -89,11 +79,11 @@ files:
89
79
  - test/sleepy_runner.rb
90
80
  - test/testlib.bash
91
81
  - test/testunit.bats
92
- homepage: http://github.com/tmm1/test-queue
82
+ homepage: https://github.com/tmm1/test-queue
93
83
  licenses:
94
84
  - MIT
95
85
  metadata: {}
96
- post_install_message:
86
+ post_install_message:
97
87
  rdoc_options: []
98
88
  require_paths:
99
89
  - lib
@@ -101,16 +91,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
91
  requirements:
102
92
  - - ">="
103
93
  - !ruby/object:Gem::Version
104
- version: '0'
94
+ version: 2.7.0
105
95
  required_rubygems_version: !ruby/object:Gem::Requirement
106
96
  requirements:
107
97
  - - ">="
108
98
  - !ruby/object:Gem::Version
109
99
  version: '0'
110
100
  requirements: []
111
- rubyforge_project:
112
- rubygems_version: 2.4.5
113
- signing_key:
101
+ rubygems_version: 3.4.6
102
+ signing_key:
114
103
  specification_version: 4
115
104
  summary: parallel test runner
116
105
  test_files: []
data/.travis.yml DELETED
@@ -1,18 +0,0 @@
1
- language: ruby
2
- install: script/bootstrap
3
- rvm:
4
- - 2.2
5
- env:
6
- - SUITE=ruby
7
- - SUITE=cucumber1-3
8
- - SUITE=cucumber2-4
9
- - SUITE=minitest4
10
- - SUITE=minitest5
11
- - SUITE=rspec2-1
12
- - SUITE=rspec3-0
13
- - SUITE=rspec3-1
14
- - SUITE=rspec3-2
15
- - SUITE=testunit
16
- script: script/cibuild
17
- notifications:
18
- email: false
data/Gemfile-cucumber1-3 DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'cucumber', '~> 1.3.10'
4
- gem 'rspec-expectations', '~> 2.14.4'
@@ -1,33 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.4.2)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- builder (3.2.2)
10
- cucumber (1.3.20)
11
- builder (>= 2.1.2)
12
- diff-lcs (>= 1.1.3)
13
- gherkin (~> 2.12)
14
- multi_json (>= 1.7.5, < 2.0)
15
- multi_test (>= 0.1.2)
16
- diff-lcs (1.2.5)
17
- gherkin (2.12.2)
18
- multi_json (~> 1.3)
19
- multi_json (1.12.1)
20
- multi_test (0.1.2)
21
- rspec-expectations (2.14.5)
22
- diff-lcs (>= 1.1.3, < 2.0)
23
-
24
- PLATFORMS
25
- ruby
26
-
27
- DEPENDENCIES
28
- cucumber (~> 1.3.10)
29
- rspec-expectations (~> 2.14.4)
30
- test-queue!
31
-
32
- BUNDLED WITH
33
- 1.13.1
data/Gemfile-cucumber2-4 DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'cucumber', '2.4.0'
4
- gem 'rspec-expectations', '2.14.4'
@@ -1,37 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.4.2)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- builder (3.2.2)
10
- cucumber (2.4.0)
11
- builder (>= 2.1.2)
12
- cucumber-core (~> 1.5.0)
13
- cucumber-wire (~> 0.0.1)
14
- diff-lcs (>= 1.1.3)
15
- gherkin (~> 4.0)
16
- multi_json (>= 1.7.5, < 2.0)
17
- multi_test (>= 0.1.2)
18
- cucumber-core (1.5.0)
19
- gherkin (~> 4.0)
20
- cucumber-wire (0.0.1)
21
- diff-lcs (1.2.5)
22
- gherkin (4.0.0)
23
- multi_json (1.12.1)
24
- multi_test (0.1.2)
25
- rspec-expectations (2.14.4)
26
- diff-lcs (>= 1.1.3, < 2.0)
27
-
28
- PLATFORMS
29
- ruby
30
-
31
- DEPENDENCIES
32
- cucumber (= 2.4.0)
33
- rspec-expectations (= 2.14.4)
34
- test-queue!
35
-
36
- BUNDLED WITH
37
- 1.13.1
data/Gemfile-minitest4 DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'minitest', '4.7.3'
@@ -1,19 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.4.2)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- minitest (4.7.3)
10
-
11
- PLATFORMS
12
- ruby
13
-
14
- DEPENDENCIES
15
- minitest (= 4.7.3)
16
- test-queue!
17
-
18
- BUNDLED WITH
19
- 1.13.1
data/Gemfile-minitest5 DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'minitest', '5.3.3'
@@ -1,19 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.4.2)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- minitest (5.3.3)
10
-
11
- PLATFORMS
12
- ruby
13
-
14
- DEPENDENCIES
15
- minitest (= 5.3.3)
16
- test-queue!
17
-
18
- BUNDLED WITH
19
- 1.13.1
data/Gemfile-rspec2-1 DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'rspec', '2.13.0'