forking_test_runner 1.16.0 → 1.17.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: 347d5e63755b11aefa879f5c697e9cc6cab2ca169051ec12f326d10037c38a7f
4
- data.tar.gz: 5368d418bad4d28203064fbcb31434a92789a3063be0384b5b7c690478c2c8c7
3
+ metadata.gz: 0d794c30f5c802d8bc7ac54e9f904df97920f75731f9df22f141e74a09bcf138
4
+ data.tar.gz: 5b80cdb62e641794f436babb17619c0ad680f93ed50878c38066b1e4d5104655
5
5
  SHA512:
6
- metadata.gz: 588c1a0b82819d48e8c3cfc3cdf63d3443c4f64ef20950a110cd3103a150ea42721ed4c71916face7940805ecf1b70071431f88937b03beefb18d033621342c1
7
- data.tar.gz: c25e5abe903f105a56cf7b79c50e00ea8285653329b804813c44de25f2c584c38eb3c6cdde8340f66aba5efe52489161917b1a3c0087be4a13c55effde4a1925
6
+ metadata.gz: ecc5203c6a7c9249c83008b799fa773b7f53c40ceed7a88cb7e4bf49316d08a40b8535ee9e926521e230ef2d8cfa9b8c7317bdd473b6aff70188109f10ada905
7
+ data.tar.gz: 7f6832e31114fb564aa6af927dd091f1caf8c7cb09b87410db06d6a9f63779e38630f75fb21a8dd3b54eb5f65137aa347c5948b4c0157ef399effab44a0ee8ed
@@ -11,16 +11,16 @@ module ForkingTestRunner
11
11
  [:merge_coverage, "--merge-coverage", "Merge base code coverage into individual files coverage and summarize coverage report"],
12
12
  [
13
13
  :record_runtime,
14
- "--record-runtime=MODE",
14
+ "--record-runtime MODE",
15
15
  "\n Record test runtime:\n " \
16
16
  "simple = write to disk at --runtime-log)\n " \
17
17
  "amend = write from multiple remote workers via http://github.com/grosser/amend, needs TRAVIS_REPO_SLUG & TRAVIS_BUILD_NUMBER",
18
18
  String
19
19
  ],
20
- [:runtime_log, "--runtime-log=FILE", "File to store runtime log in or runtime.log", String],
21
- [:parallel, "--parallel=NUM", "Number of parallel groups to run at once", Integer],
22
- [:group, "--group=NUM[,NUM]", "What group this is (use with --groups / starts at 1)", String],
23
- [:groups, "--groups=NUM", "How many groups there are in total (use with --group)", Integer],
20
+ [:runtime_log, "--runtime-log FILE", "File to store runtime log in or runtime.log", String],
21
+ [:parallel, "--parallel NUM", "Number of parallel groups to run at once", Integer],
22
+ [:group, "--group NUM[,NUM]", "What group this is (use with --groups / starts at 1)", String],
23
+ [:groups, "--groups NUM", "How many groups there are in total (use with --group)", Integer],
24
24
  [:version, "--version", "Show version"],
25
25
  [:help, "--help", "Show help"]
26
26
  ].freeze
@@ -28,7 +28,7 @@ module ForkingTestRunner
28
28
  class << self
29
29
  def parse_options(argv)
30
30
  options = OPTIONS.each_with_object({}) do |(setting, flag, _, type), all|
31
- all[setting] = delete_argv(flag.split('=', 2)[0], argv, type:)
31
+ all[setting] = delete_argv(flag.split(' ', 2)[0], argv, type: type)
32
32
  end
33
33
 
34
34
  # show version
@@ -76,18 +76,24 @@ module ForkingTestRunner
76
76
  # so minitest / rspec can read their own options (--seed / -v ...)
77
77
  # - keep our options clear / unambiguous to avoid overriding
78
78
  # - read all serial non-flag arguments as tests and leave only unknown options behind
79
- # - use .fetch everywhere to make sure nothing is misspelled
80
- # GOOD: test --ours --theirs
81
- # OK: --ours test --theirs
82
- # BAD: --theirs test --ours
83
79
  def delete_argv(name, argv, type: nil)
84
- return unless index = argv.index(name)
85
- argv.delete_at(index)
86
- if type
87
- found = argv.delete_at(index) || raise("Missing argument for #{name}")
88
- send(type.name, found) # case found
89
- else
90
- true
80
+ if type # value needed
81
+ value =
82
+ if (index = argv.index(name)) # user used `--foo bar` style ?
83
+ argv.delete_at(index)
84
+ argv.delete_at(index) || raise(ArgumentError, "Missing argument for #{name}")
85
+ else # user used `--foo=bar` style ?
86
+ prefix = "#{name}="
87
+ return unless (index = argv.index { |arg| arg.start_with?(prefix) })
88
+ argv.delete_at(index).delete_prefix(prefix)
89
+ end
90
+
91
+ send(type.name, value) # for example Integer(found)
92
+ else # no value needed
93
+ if (index = argv.index(name))
94
+ argv.delete_at(index)
95
+ true
96
+ end
91
97
  end
92
98
  end
93
99
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ForkingTestRunner
3
- VERSION = "1.16.0"
3
+ VERSION = "1.17.0"
4
4
  end
@@ -344,8 +344,8 @@ module ForkingTestRunner
344
344
  tests = ParallelTests::Test::Runner.send(
345
345
  :tests_with_size,
346
346
  tests,
347
- runtime_log:,
348
- group_by:
347
+ runtime_log: runtime_log,
348
+ group_by: group_by
349
349
  )
350
350
  groups = ParallelTests::Grouper.in_even_groups_by_size(tests, group_count, {})
351
351
  group = groups[group - 1] || raise("Group #{group} not found")
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forking_test_runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.0
4
+ version: 1.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-11-22 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: benchmark
@@ -56,22 +55,16 @@ dependencies:
56
55
  name: bundler
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.4'
62
58
  - - ">="
63
59
  - !ruby/object:Gem::Version
64
- version: 2.4.22
60
+ version: '0'
65
61
  type: :development
66
62
  prerelease: false
67
63
  version_requirements: !ruby/object:Gem::Requirement
68
64
  requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: '2.4'
72
65
  - - ">="
73
66
  - !ruby/object:Gem::Version
74
- version: 2.4.22
67
+ version: '0'
75
68
  - !ruby/object:Gem::Dependency
76
69
  name: drb
77
70
  requirement: !ruby/object:Gem::Requirement
@@ -104,16 +97,16 @@ dependencies:
104
97
  name: minitest
105
98
  requirement: !ruby/object:Gem::Requirement
106
99
  requirements:
107
- - - ">="
100
+ - - "~>"
108
101
  - !ruby/object:Gem::Version
109
- version: '0'
102
+ version: '6.0'
110
103
  type: :development
111
104
  prerelease: false
112
105
  version_requirements: !ruby/object:Gem::Requirement
113
106
  requirements:
114
- - - ">="
107
+ - - "~>"
115
108
  - !ruby/object:Gem::Version
116
- version: '0'
109
+ version: '6.0'
117
110
  - !ruby/object:Gem::Dependency
118
111
  name: mutex_m
119
112
  requirement: !ruby/object:Gem::Requirement
@@ -174,17 +167,16 @@ dependencies:
174
167
  name: sqlite3
175
168
  requirement: !ruby/object:Gem::Requirement
176
169
  requirements:
177
- - - "~>"
170
+ - - ">="
178
171
  - !ruby/object:Gem::Version
179
- version: '1.4'
172
+ version: '0'
180
173
  type: :development
181
174
  prerelease: false
182
175
  version_requirements: !ruby/object:Gem::Requirement
183
176
  requirements:
184
- - - "~>"
177
+ - - ">="
185
178
  - !ruby/object:Gem::Version
186
- version: '1.4'
187
- description:
179
+ version: '0'
188
180
  email: michael@grosser.it
189
181
  executables:
190
182
  - forking-test-runner
@@ -201,7 +193,6 @@ homepage: https://github.com/grosser/forking_test_runner
201
193
  licenses:
202
194
  - MIT
203
195
  metadata: {}
204
- post_install_message:
205
196
  rdoc_options: []
206
197
  require_paths:
207
198
  - lib
@@ -209,15 +200,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
200
  requirements:
210
201
  - - ">="
211
202
  - !ruby/object:Gem::Version
212
- version: 3.1.0
203
+ version: 3.2.0
213
204
  required_rubygems_version: !ruby/object:Gem::Requirement
214
205
  requirements:
215
206
  - - ">="
216
207
  - !ruby/object:Gem::Version
217
208
  version: '0'
218
209
  requirements: []
219
- rubygems_version: 3.4.10
220
- signing_key:
210
+ rubygems_version: 3.6.9
221
211
  specification_version: 4
222
212
  summary: Run every test in a fork to avoid pollution and get clean output per test
223
213
  test_files: []