turbo_tests2 3.1.1 → 3.1.2

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: 60ede4cd429a0a25151b01cd9f0bcddbafb8002e048e55b4aef4dbb47d5fa5d8
4
- data.tar.gz: 7b64b241458249d78ff9b632ecc7679fc5e27620f8f36aea0d1f4170236c9cd9
3
+ metadata.gz: 3f7e32f7c287251c9f42dc998ba6b717d2977f1f8d741de4f1f0fb774089589b
4
+ data.tar.gz: fffd71116b9ce2d824896c779feaa53d467fece2e8e649074690c9e98752a035
5
5
  SHA512:
6
- metadata.gz: a24112e4b8d4280f937aa5b9617cfa6367c4aef082750e819ac76a12681ab596ad8bf2f72c5701833f4efe29e33de89a4eed316422e4b341fb781f2addba3ef5
7
- data.tar.gz: 34da19c8fbeee18e9541c488c34c8045f8a9ea5f2628b679339c6cbb0160e492fa7b9b21231ca6ecb30685826c27206788d58c6512a4ffc18e7f34728ca625df
6
+ metadata.gz: 8b35cc849e52d2c7963fdfa1f51a558261cd7fc0ee00b63c04c7d4d8170fa515aaf0a51717e9bf1fb1bf2e6b2c8eaa19a67f2aac1f9bbbe7ffacdc20140ed4da
7
+ data.tar.gz: d24ee3ba58ec58d7d942d1f9fc5617fa1d12e34efbc8a65dc5a1db52018af5660a287c7f9c08ce207061ba0d71ecc5727506f92b01bbcc80dda112e0251fb547
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -28,10 +28,22 @@ Please file a bug if you notice a violation of semantic versioning.
28
28
 
29
29
  ### Fixed
30
30
 
31
- - Worker PID cleanup now uses the `parallel_tests` pid file path captured when the subprocess starts, avoiding JRuby failures after the pid-file environment is restored.
32
-
33
31
  ### Security
34
32
 
33
+ ## [3.1.2] - 2026-06-08
34
+
35
+ - TAG: [v3.1.2][3.1.2t]
36
+ - COVERAGE: 94.62% -- 651/688 lines in 16 files
37
+ - BRANCH COVERAGE: 79.33% -- 119/150 branches in 16 files
38
+ - 37.08% documented
39
+
40
+ ### Fixed
41
+
42
+ - `turbo_tests2` now generates and reports a global random seed by default,
43
+ passes it to every worker process, and supports `--order defined` /
44
+ `--no-random` for ordered runs without a seed.
45
+ - Worker PID cleanup now uses the `parallel_tests` pid file path captured when the subprocess starts, avoiding JRuby failures after the pid-file environment is restored.
46
+
35
47
  ## [3.1.1] - 2026-06-02
36
48
 
37
49
  - TAG: [v3.1.1][3.1.1t]
@@ -114,7 +126,9 @@ Please file a bug if you notice a violation of semantic versioning.
114
126
 
115
127
  - Initial release
116
128
 
117
- [Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.1...HEAD
129
+ [Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.2...HEAD
130
+ [3.1.2]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.1...v3.1.2
131
+ [3.1.2t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.2
118
132
  [3.1.1]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.0...v3.1.1
119
133
  [3.1.1t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.1
120
134
  [3.1.0]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.0.0...v3.1.0
data/LICENSE.md CHANGED
@@ -7,16 +7,16 @@ Choose the option that best fits your use case:
7
7
 
8
8
  ## Copyright Notice
9
9
 
10
- Copyright (c) 2020-2023 Illia
11
- Copyright (c) 2020 Ilya Zub
12
- Copyright (c) 2021 AMHOL
13
- Copyright (c) 2021 Serge Bedzhyk
14
- Copyright (c) 2023 Bo Anderson
15
- Copyright (c) 2023 Dmitiry Zub☀️
16
- Copyright (c) 2023-2024 Illia
17
- Copyright (c) 2023 mrudzki
18
- Copyright (c) 2023-2024 Sebastien Savater
19
- Copyright (c) 2024 David Rodriguez
20
- Copyright (c) 2024 Hiroshi SHIBATA
21
- Copyright (c) 2025-2026 Gareth Jones
22
- Copyright (c) 2025-2026 Peter H. Boling
10
+ - Copyright (c) 2020-2023 Illia
11
+ - Copyright (c) 2020 Ilya Zub
12
+ - Copyright (c) 2021 AMHOL
13
+ - Copyright (c) 2021 Serge Bedzhyk
14
+ - Copyright (c) 2023 Bo Anderson
15
+ - Copyright (c) 2023 Dmitiry Zub☀️
16
+ - Copyright (c) 2023-2024 Illia
17
+ - Copyright (c) 2023 mrudzki
18
+ - Copyright (c) 2023-2024 Sebastien Savater
19
+ - Copyright (c) 2024 David Rodriguez
20
+ - Copyright (c) 2024 Hiroshi SHIBATA
21
+ - Copyright (c) 2025-2026 Gareth Jones
22
+ - Copyright (c) 2025-2026 Peter H. Boling
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <a href="https://github.com/galtzo-floss"><img alt="galtzo-floss Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px.svg" width="12%" align="right"/></a> <a href="https://github.com/galtzo-floss/turbo_tests2"><img alt="turbo_tests2 Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/turbo_tests2/avatar-128px.svg" width="12%" align="right"/></a>
1
+ <a href="https://github.com/galtzo-floss/turbo_tests2"><img alt="turbo_tests2 Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/turbo_tests2/avatar-128px.svg" width="20%" align="right"/></a>
2
2
 
3
3
  # 🚀 TurboTests
4
4
 
@@ -181,20 +181,28 @@ Usage: turbo_tests2 [options]
181
181
  turbo_tests2 spec/bar spec/baz/xxx_spec.rb
182
182
 
183
183
  Options:
184
- -n [PROCESSES] How many processes to use, default: available CPUs
184
+ -n, -w, --workers [PROCESSES] How many processes to use, default: available CPUs
185
185
  -r, --require PATH Require a file.
186
186
  -f, --format FORMATTER Choose a formatter. Available formatters: progress (p), documentation (d). Default: progress
187
187
  -t, --tag TAG Run examples with the specified tag.
188
188
  -o, --out FILE Write output to a file instead of $stdout
189
189
  --runtime-log FILE Location of previously recorded test runtimes
190
+ --example-status-log FILE Use RSpec example status persistence timings for grouping
190
191
  -v, --verbose More output
191
192
  --fail-fast=[N]
192
193
  --seed SEED Seed for rspec
193
- --create Create test databases
194
+ --order ORDER RSpec example order: random (default) or defined
195
+ --no-random Run examples in defined order without passing a seed
196
+ --create Create databases
194
197
  --print_failed_group Prints group that had failures in it
198
+ --nice execute test commands with low priority
195
199
  ```
196
200
 
197
- To pass any options supported by paralell_tests, use `--`:
201
+ By default, `turbo_tests2` generates one random RSpec seed, prints it, and passes
202
+ that same seed to every worker process. Use `--seed SEED` to replay a run, or
203
+ `--order defined` / `--no-random` when you want ordered examples without a seed.
204
+
205
+ To pass any options supported by parallel_tests, use `--`:
198
206
 
199
207
  ```bash
200
208
  bundle exec turbo_tests2 -n 4 -- --only-group 1 --pattern spec/system
@@ -644,7 +652,7 @@ Thanks for RTFM. ☺️
644
652
  [📌gitmoji]: https://gitmoji.dev
645
653
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
646
654
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
647
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.670-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
655
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.688-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
648
656
  [🔐security]: https://github.com/galtzo-floss/turbo_tests2/blob/main/SECURITY.md
649
657
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
650
658
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
data/SECURITY.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Version | Supported |
6
6
  |----------|-----------|
7
- | 1.latest | ✅ |
7
+ | 3.1.latest | ✅ |
8
8
 
9
9
  ## Security contact information
10
10
 
@@ -21,6 +21,7 @@ module TurboTests
21
21
  verbose = false
22
22
  fail_fast = nil
23
23
  seed = nil
24
+ order = nil
24
25
  print_failed_group = false
25
26
  create = false
26
27
  nice = false
@@ -99,6 +100,14 @@ module TurboTests
99
100
  seed = s
100
101
  end
101
102
 
103
+ opts.on("--order ORDER", "RSpec example order: random (default) or defined") do |value|
104
+ order = value
105
+ end
106
+
107
+ opts.on("--no-random", "Run examples in defined order without passing a seed") do
108
+ order = "defined"
109
+ end
110
+
102
111
  opts.on("--create", "Create databases") do
103
112
  create = true
104
113
  end
@@ -146,6 +155,7 @@ module TurboTests
146
155
  fail_fast: fail_fast,
147
156
  count: count,
148
157
  seed: seed,
158
+ order: order,
149
159
  nice: nice,
150
160
  print_failed_group: print_failed_group,
151
161
  parallel_options: parallel_options
@@ -34,8 +34,10 @@ module TurboTests
34
34
  verbose = opts.fetch(:verbose, false)
35
35
  fail_fast = opts.fetch(:fail_fast, nil)
36
36
  count = opts.fetch(:count, nil)
37
+ order = normalize_order(opts.fetch(:order, nil))
37
38
  seed = opts.fetch(:seed, nil)
38
- seed_used = !seed.nil?
39
+ seed_used = order != "defined"
40
+ seed = generate_seed if seed_used && seed.nil?
39
41
  print_failed_group = opts.fetch(:print_failed_group, false)
40
42
  nice = opts.fetch(:nice, false)
41
43
 
@@ -67,6 +69,7 @@ module TurboTests
67
69
  count: count,
68
70
  seed: seed,
69
71
  seed_used: seed_used,
72
+ order: order,
70
73
  print_failed_group: print_failed_group,
71
74
  use_runtime_info: use_runtime_info,
72
75
  parallel_options: parallel_options,
@@ -88,6 +91,18 @@ module TurboTests
88
91
  File.write(path, runtimes.sort.map { |file, runtime| "#{file}:#{runtime}" }.join("\n"))
89
92
  path
90
93
  end
94
+
95
+ def normalize_order(order)
96
+ order = order.to_s.strip.downcase
97
+ return "random" if order.empty?
98
+ return order if %w[random defined].include?(order)
99
+
100
+ raise ArgumentError, "Unsupported order #{order.inspect}; use random or defined"
101
+ end
102
+
103
+ def generate_seed
104
+ (Random.new_seed % 65_535).to_s
105
+ end
91
106
  end
92
107
 
93
108
  def initialize(**opts)
@@ -101,6 +116,7 @@ module TurboTests
101
116
  @count = opts[:count]
102
117
  @seed = opts[:seed]
103
118
  @seed_used = opts[:seed_used]
119
+ @order = opts[:order]
104
120
  @nice = opts[:nice]
105
121
  @use_runtime_info = opts[:use_runtime_info]
106
122
 
@@ -241,6 +257,10 @@ module TurboTests
241
257
  [
242
258
  "--seed", @seed
243
259
  ]
260
+ elsif @order
261
+ [
262
+ "--order", @order
263
+ ]
244
264
  else
245
265
  []
246
266
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module TurboTests
4
4
  module Version
5
- VERSION = "3.1.1"
5
+ VERSION = "3.1.2"
6
6
  end
7
7
  VERSION = Version::VERSION # Traditional Constant Location
8
8
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbo_tests2
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Illia
@@ -92,7 +92,7 @@ dependencies:
92
92
  version: '1.1'
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
- version: 1.1.9
95
+ version: 1.1.11
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
@@ -102,27 +102,27 @@ dependencies:
102
102
  version: '1.1'
103
103
  - - ">="
104
104
  - !ruby/object:Gem::Version
105
- version: 1.1.9
105
+ version: 1.1.11
106
106
  - !ruby/object:Gem::Dependency
107
107
  name: kettle-dev
108
108
  requirement: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - "~>"
111
111
  - !ruby/object:Gem::Version
112
- version: '2.0'
112
+ version: '2.1'
113
113
  - - ">="
114
114
  - !ruby/object:Gem::Version
115
- version: 2.0.7
115
+ version: 2.1.1
116
116
  type: :development
117
117
  prerelease: false
118
118
  version_requirements: !ruby/object:Gem::Requirement
119
119
  requirements:
120
120
  - - "~>"
121
121
  - !ruby/object:Gem::Version
122
- version: '2.0'
122
+ version: '2.1'
123
123
  - - ">="
124
124
  - !ruby/object:Gem::Version
125
- version: 2.0.7
125
+ version: 2.1.1
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: bundler-audit
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -177,20 +177,20 @@ dependencies:
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '3.0'
180
+ version: '3.1'
181
181
  - - ">="
182
182
  - !ruby/object:Gem::Version
183
- version: 3.0.6
183
+ version: 3.1.1
184
184
  type: :development
185
185
  prerelease: false
186
186
  version_requirements: !ruby/object:Gem::Requirement
187
187
  requirements:
188
188
  - - "~>"
189
189
  - !ruby/object:Gem::Version
190
- version: '3.0'
190
+ version: '3.1'
191
191
  - - ">="
192
192
  - !ruby/object:Gem::Version
193
- version: 3.0.6
193
+ version: 3.1.1
194
194
  - !ruby/object:Gem::Dependency
195
195
  name: kettle-test
196
196
  requirement: !ruby/object:Gem::Requirement
@@ -200,7 +200,7 @@ dependencies:
200
200
  version: '2.0'
201
201
  - - ">="
202
202
  - !ruby/object:Gem::Version
203
- version: 2.0.2
203
+ version: 2.0.3
204
204
  type: :development
205
205
  prerelease: false
206
206
  version_requirements: !ruby/object:Gem::Requirement
@@ -210,7 +210,7 @@ dependencies:
210
210
  version: '2.0'
211
211
  - - ">="
212
212
  - !ruby/object:Gem::Version
213
- version: 2.0.2
213
+ version: 2.0.3
214
214
  - !ruby/object:Gem::Dependency
215
215
  name: ruby-progressbar
216
216
  requirement: !ruby/object:Gem::Requirement
@@ -311,10 +311,10 @@ licenses:
311
311
  - MIT
312
312
  metadata:
313
313
  homepage_uri: https://turbo-tests2.galtzo.com
314
- source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.1
315
- changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.1.1/CHANGELOG.md
314
+ source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.2
315
+ changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.1.2/CHANGELOG.md
316
316
  bug_tracker_uri: https://github.com/galtzo-floss/turbo_tests2/issues
317
- documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.1
317
+ documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.2
318
318
  funding_uri: https://github.com/sponsors/pboling
319
319
  wiki_uri: https://github.com/galtzo-floss/turbo_tests2/wiki
320
320
  news_uri: https://www.railsbling.com/tags/turbo_tests2
metadata.gz.sig CHANGED
Binary file