forking_test_runner 1.14.0 → 1.15.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 +53 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a7ebca8b454c091bb661a22944f47dfe076bca28881204c35d5c5406e2edf99
|
4
|
+
data.tar.gz: 2fdc6f9e18ae663f4c6ebca965e494af978e99ed6bd38fa91527e530844a9f2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53998b0c82cea8ab99a6605f2a834b251d62f24c174b8dc482f917bdcc249c691a6602508e1d23b728a67a04cdd3c6c82b104fe4586dcce243f4845f9789c692
|
7
|
+
data.tar.gz: 6e507d5539e50ddf61efcc23c879270a74e7a81f28f7bf4d278b0bf19183ca2234c23ec776f0cc2ab269640b53f5bb902ac6aae186af5a1f44643bcc67f48a8d
|
@@ -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,14 +1,14 @@
|
|
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.15.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: 2024-
|
11
|
+
date: 2024-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel_tests
|
@@ -44,20 +44,48 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '2.
|
47
|
+
version: '2.4'
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 2.
|
50
|
+
version: 2.4.22
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - "~>"
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: '2.
|
57
|
+
version: '2.4'
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 2.
|
60
|
+
version: 2.4.22
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: drb
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: logger
|
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'
|
61
89
|
- !ruby/object:Gem::Dependency
|
62
90
|
name: minitest
|
63
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,6 +100,20 @@ dependencies:
|
|
72
100
|
- - ">="
|
73
101
|
- !ruby/object:Gem::Version
|
74
102
|
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: mutex_m
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
75
117
|
- !ruby/object:Gem::Dependency
|
76
118
|
name: rake
|
77
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,28 +148,28 @@ dependencies:
|
|
106
148
|
requirements:
|
107
149
|
- - "~>"
|
108
150
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.
|
151
|
+
version: 1.66.1
|
110
152
|
type: :development
|
111
153
|
prerelease: false
|
112
154
|
version_requirements: !ruby/object:Gem::Requirement
|
113
155
|
requirements:
|
114
156
|
- - "~>"
|
115
157
|
- !ruby/object:Gem::Version
|
116
|
-
version: 1.
|
158
|
+
version: 1.66.1
|
117
159
|
- !ruby/object:Gem::Dependency
|
118
160
|
name: sqlite3
|
119
161
|
requirement: !ruby/object:Gem::Requirement
|
120
162
|
requirements:
|
121
163
|
- - "~>"
|
122
164
|
- !ruby/object:Gem::Version
|
123
|
-
version: 1.
|
165
|
+
version: '1.4'
|
124
166
|
type: :development
|
125
167
|
prerelease: false
|
126
168
|
version_requirements: !ruby/object:Gem::Requirement
|
127
169
|
requirements:
|
128
170
|
- - "~>"
|
129
171
|
- !ruby/object:Gem::Version
|
130
|
-
version: 1.
|
172
|
+
version: '1.4'
|
131
173
|
description:
|
132
174
|
email: michael@grosser.it
|
133
175
|
executables:
|
@@ -153,7 +195,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
153
195
|
requirements:
|
154
196
|
- - ">="
|
155
197
|
- !ruby/object:Gem::Version
|
156
|
-
version:
|
198
|
+
version: 3.1.0
|
157
199
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
200
|
requirements:
|
159
201
|
- - ">="
|