forking_test_runner 1.14.0 → 1.16.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/lib/forking_test_runner/cli.rb +1 -1
- data/lib/forking_test_runner/version.rb +1 -1
- data/lib/forking_test_runner.rb +17 -11
- metadata +67 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 347d5e63755b11aefa879f5c697e9cc6cab2ca169051ec12f326d10037c38a7f
|
|
4
|
+
data.tar.gz: 5368d418bad4d28203064fbcb31434a92789a3063be0384b5b7c690478c2c8c7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 588c1a0b82819d48e8c3cfc3cdf63d3443c4f64ef20950a110cd3103a150ea42721ed4c71916face7940805ecf1b70071431f88937b03beefb18d033621342c1
|
|
7
|
+
data.tar.gz: c25e5abe903f105a56cf7b79c50e00ea8285653329b804813c44de25f2c584c38eb3c6cdde8340f66aba5efe52489161917b1a3c0087be4a13c55effde4a1925
|
|
@@ -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:)
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
# show version
|
data/lib/forking_test_runner.rb
CHANGED
|
@@ -9,7 +9,7 @@ require 'tempfile'
|
|
|
9
9
|
|
|
10
10
|
module ForkingTestRunner
|
|
11
11
|
CLEAR = "------"
|
|
12
|
-
|
|
12
|
+
COVERAGE_REPORT_PREFIX = "coverage/fork-"
|
|
13
13
|
|
|
14
14
|
class << self
|
|
15
15
|
attr_accessor :before_fork_callbacks, :after_fork_callbacks
|
|
@@ -96,9 +96,9 @@ module ForkingTestRunner
|
|
|
96
96
|
|
|
97
97
|
private
|
|
98
98
|
|
|
99
|
-
def with_lock(&
|
|
99
|
+
def with_lock(&)
|
|
100
100
|
return yield unless @options.fetch(:parallel)
|
|
101
|
-
Tempfile.open
|
|
101
|
+
Tempfile.open("forking-test-runner-lock", &)
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
def sync_stdout(lock)
|
|
@@ -237,14 +237,21 @@ module ForkingTestRunner
|
|
|
237
237
|
# reuse our pre-loaded fixtures even if we have a different connection
|
|
238
238
|
fixtures = ActiveRecord::FixtureSet
|
|
239
239
|
fixtures_eigenclass = class << fixtures; self; end
|
|
240
|
-
|
|
240
|
+
|
|
241
|
+
name = (ActiveRecord::VERSION::STRING >= "7.2.0" ? :cache_for_connection_pool : :cache_for_connection)
|
|
242
|
+
fixtures_eigenclass.send(:define_method, name) do |_pool|
|
|
241
243
|
fixtures.class_variable_get(:@@all_cached_fixtures)[:unique]
|
|
242
244
|
end
|
|
243
245
|
|
|
244
246
|
ActiveSupport::TestCase.fixtures :all
|
|
245
247
|
|
|
246
248
|
fixtures.create_fixtures(
|
|
247
|
-
ActiveSupport::TestCase.
|
|
249
|
+
(if ActiveSupport::TestCase.respond_to?(:fixture_paths)
|
|
250
|
+
ActiveSupport::TestCase.fixture_paths
|
|
251
|
+
else
|
|
252
|
+
ActiveSupport::TestCase.fixture_path
|
|
253
|
+
end
|
|
254
|
+
), # TODO: remove after dropping rails 7,0 support
|
|
248
255
|
ActiveSupport::TestCase.fixture_table_names,
|
|
249
256
|
ActiveSupport::TestCase.fixture_class_names
|
|
250
257
|
)
|
|
@@ -300,14 +307,13 @@ module ForkingTestRunner
|
|
|
300
307
|
SimpleCov.command_name file
|
|
301
308
|
end
|
|
302
309
|
if partial_reports_for_single_cov?
|
|
303
|
-
SingleCov.coverage_report = "#{
|
|
310
|
+
SingleCov.coverage_report = "#{COVERAGE_REPORT_PREFIX}#{Process.pid}.json"
|
|
304
311
|
end
|
|
305
312
|
|
|
306
313
|
@after_fork_callbacks.each(&:call)
|
|
307
314
|
|
|
308
315
|
if active_record?
|
|
309
|
-
|
|
310
|
-
ActiveRecord::Base.establish_connection key
|
|
316
|
+
ActiveRecord::Base.establish_connection :test
|
|
311
317
|
end
|
|
312
318
|
enable_test_autorun(file)
|
|
313
319
|
end
|
|
@@ -338,8 +344,8 @@ module ForkingTestRunner
|
|
|
338
344
|
tests = ParallelTests::Test::Runner.send(
|
|
339
345
|
:tests_with_size,
|
|
340
346
|
tests,
|
|
341
|
-
runtime_log
|
|
342
|
-
group_by:
|
|
347
|
+
runtime_log:,
|
|
348
|
+
group_by:
|
|
343
349
|
)
|
|
344
350
|
groups = ParallelTests::Grouper.in_even_groups_by_size(tests, group_count, {})
|
|
345
351
|
group = groups[group - 1] || raise("Group #{group} not found")
|
|
@@ -383,7 +389,7 @@ module ForkingTestRunner
|
|
|
383
389
|
end
|
|
384
390
|
|
|
385
391
|
def summarize_partial_reports
|
|
386
|
-
reports = Dir.glob("#{
|
|
392
|
+
reports = Dir.glob("#{COVERAGE_REPORT_PREFIX}*")
|
|
387
393
|
return if reports.empty?
|
|
388
394
|
key = nil
|
|
389
395
|
|
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: forking_test_runner
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Grosser
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-11-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: benchmark
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 0.5.0
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 0.5.0
|
|
13
27
|
- !ruby/object:Gem::Dependency
|
|
14
28
|
name: parallel_tests
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -44,20 +58,48 @@ dependencies:
|
|
|
44
58
|
requirements:
|
|
45
59
|
- - "~>"
|
|
46
60
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '2.
|
|
61
|
+
version: '2.4'
|
|
48
62
|
- - ">="
|
|
49
63
|
- !ruby/object:Gem::Version
|
|
50
|
-
version: 2.
|
|
64
|
+
version: 2.4.22
|
|
51
65
|
type: :development
|
|
52
66
|
prerelease: false
|
|
53
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
54
68
|
requirements:
|
|
55
69
|
- - "~>"
|
|
56
70
|
- !ruby/object:Gem::Version
|
|
57
|
-
version: '2.
|
|
71
|
+
version: '2.4'
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 2.4.22
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: drb
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
- !ruby/object:Gem::Dependency
|
|
90
|
+
name: logger
|
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
58
93
|
- - ">="
|
|
59
94
|
- !ruby/object:Gem::Version
|
|
60
|
-
version:
|
|
95
|
+
version: '0'
|
|
96
|
+
type: :development
|
|
97
|
+
prerelease: false
|
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
61
103
|
- !ruby/object:Gem::Dependency
|
|
62
104
|
name: minitest
|
|
63
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,6 +114,20 @@ dependencies:
|
|
|
72
114
|
- - ">="
|
|
73
115
|
- !ruby/object:Gem::Version
|
|
74
116
|
version: '0'
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: mutex_m
|
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '0'
|
|
124
|
+
type: :development
|
|
125
|
+
prerelease: false
|
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - ">="
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '0'
|
|
75
131
|
- !ruby/object:Gem::Dependency
|
|
76
132
|
name: rake
|
|
77
133
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -106,28 +162,28 @@ dependencies:
|
|
|
106
162
|
requirements:
|
|
107
163
|
- - "~>"
|
|
108
164
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: 1.
|
|
165
|
+
version: 1.66.1
|
|
110
166
|
type: :development
|
|
111
167
|
prerelease: false
|
|
112
168
|
version_requirements: !ruby/object:Gem::Requirement
|
|
113
169
|
requirements:
|
|
114
170
|
- - "~>"
|
|
115
171
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: 1.
|
|
172
|
+
version: 1.66.1
|
|
117
173
|
- !ruby/object:Gem::Dependency
|
|
118
174
|
name: sqlite3
|
|
119
175
|
requirement: !ruby/object:Gem::Requirement
|
|
120
176
|
requirements:
|
|
121
177
|
- - "~>"
|
|
122
178
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 1.
|
|
179
|
+
version: '1.4'
|
|
124
180
|
type: :development
|
|
125
181
|
prerelease: false
|
|
126
182
|
version_requirements: !ruby/object:Gem::Requirement
|
|
127
183
|
requirements:
|
|
128
184
|
- - "~>"
|
|
129
185
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: 1.
|
|
186
|
+
version: '1.4'
|
|
131
187
|
description:
|
|
132
188
|
email: michael@grosser.it
|
|
133
189
|
executables:
|
|
@@ -153,7 +209,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
153
209
|
requirements:
|
|
154
210
|
- - ">="
|
|
155
211
|
- !ruby/object:Gem::Version
|
|
156
|
-
version:
|
|
212
|
+
version: 3.1.0
|
|
157
213
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
214
|
requirements:
|
|
159
215
|
- - ">="
|