forking_test_runner 1.15.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: 0a7ebca8b454c091bb661a22944f47dfe076bca28881204c35d5c5406e2edf99
4
- data.tar.gz: 2fdc6f9e18ae663f4c6ebca965e494af978e99ed6bd38fa91527e530844a9f2b
3
+ metadata.gz: 0d794c30f5c802d8bc7ac54e9f904df97920f75731f9df22f141e74a09bcf138
4
+ data.tar.gz: 5b80cdb62e641794f436babb17619c0ad680f93ed50878c38066b1e4d5104655
5
5
  SHA512:
6
- metadata.gz: 53998b0c82cea8ab99a6605f2a834b251d62f24c174b8dc482f917bdcc249c691a6602508e1d23b728a67a04cdd3c6c82b104fe4586dcce243f4845f9789c692
7
- data.tar.gz: 6e507d5539e50ddf61efcc23c879270a74e7a81f28f7bf4d278b0bf19183ca2234c23ec776f0cc2ab269640b53f5bb902ac6aae186af5a1f44643bcc67f48a8d
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.15.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,15 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forking_test_runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.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: 2024-09-25 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: benchmark
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 0.5.0
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 0.5.0
13
26
  - !ruby/object:Gem::Dependency
14
27
  name: parallel_tests
15
28
  requirement: !ruby/object:Gem::Requirement
@@ -42,22 +55,16 @@ dependencies:
42
55
  name: bundler
43
56
  requirement: !ruby/object:Gem::Requirement
44
57
  requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '2.4'
48
58
  - - ">="
49
59
  - !ruby/object:Gem::Version
50
- version: 2.4.22
60
+ version: '0'
51
61
  type: :development
52
62
  prerelease: false
53
63
  version_requirements: !ruby/object:Gem::Requirement
54
64
  requirements:
55
- - - "~>"
56
- - !ruby/object:Gem::Version
57
- version: '2.4'
58
65
  - - ">="
59
66
  - !ruby/object:Gem::Version
60
- version: 2.4.22
67
+ version: '0'
61
68
  - !ruby/object:Gem::Dependency
62
69
  name: drb
63
70
  requirement: !ruby/object:Gem::Requirement
@@ -90,16 +97,16 @@ dependencies:
90
97
  name: minitest
91
98
  requirement: !ruby/object:Gem::Requirement
92
99
  requirements:
93
- - - ">="
100
+ - - "~>"
94
101
  - !ruby/object:Gem::Version
95
- version: '0'
102
+ version: '6.0'
96
103
  type: :development
97
104
  prerelease: false
98
105
  version_requirements: !ruby/object:Gem::Requirement
99
106
  requirements:
100
- - - ">="
107
+ - - "~>"
101
108
  - !ruby/object:Gem::Version
102
- version: '0'
109
+ version: '6.0'
103
110
  - !ruby/object:Gem::Dependency
104
111
  name: mutex_m
105
112
  requirement: !ruby/object:Gem::Requirement
@@ -160,17 +167,16 @@ dependencies:
160
167
  name: sqlite3
161
168
  requirement: !ruby/object:Gem::Requirement
162
169
  requirements:
163
- - - "~>"
170
+ - - ">="
164
171
  - !ruby/object:Gem::Version
165
- version: '1.4'
172
+ version: '0'
166
173
  type: :development
167
174
  prerelease: false
168
175
  version_requirements: !ruby/object:Gem::Requirement
169
176
  requirements:
170
- - - "~>"
177
+ - - ">="
171
178
  - !ruby/object:Gem::Version
172
- version: '1.4'
173
- description:
179
+ version: '0'
174
180
  email: michael@grosser.it
175
181
  executables:
176
182
  - forking-test-runner
@@ -187,7 +193,6 @@ homepage: https://github.com/grosser/forking_test_runner
187
193
  licenses:
188
194
  - MIT
189
195
  metadata: {}
190
- post_install_message:
191
196
  rdoc_options: []
192
197
  require_paths:
193
198
  - lib
@@ -195,15 +200,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
195
200
  requirements:
196
201
  - - ">="
197
202
  - !ruby/object:Gem::Version
198
- version: 3.1.0
203
+ version: 3.2.0
199
204
  required_rubygems_version: !ruby/object:Gem::Requirement
200
205
  requirements:
201
206
  - - ">="
202
207
  - !ruby/object:Gem::Version
203
208
  version: '0'
204
209
  requirements: []
205
- rubygems_version: 3.4.10
206
- signing_key:
210
+ rubygems_version: 3.6.9
207
211
  specification_version: 4
208
212
  summary: Run every test in a fork to avoid pollution and get clean output per test
209
213
  test_files: []