turbo_tests2 3.2.2 → 3.2.4
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +93 -1
- data/README.md +20 -19
- data/lib/turbo_tests/runner.rb +32 -13
- data/lib/turbo_tests/version.rb +4 -1
- data.tar.gz.sig +0 -0
- metadata +15 -14
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6a7b76933feaf17d15ae3e39694ad0f9c8472196e00a517e5d0a0a660a2b98f1
|
|
4
|
+
data.tar.gz: b8b2182ea1cc569fffe3fecabd63ce3edc3275818a9f5bb0fe766faf6c0f4a31
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a6b7d36bc9c7b81f3aacd08b159dcbfdef48a1dc75e568eff0b39b45e51d529015cc066febf08f320feaa2f738b12ad3e63c3eba33aa514f06ffc0543763c9da
|
|
7
|
+
data.tar.gz: 23965c6a7318f1d01750b94e46435c3399d80b9c7f253de2e36591f4ec7e9805fb249ce3702ca294e93350b372fb1b8bf9ff14f1416fa32792751c6773d24f78
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,94 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [3.2.4] - 2026-07-31
|
|
34
|
+
|
|
35
|
+
- TAG: [v3.2.4][3.2.4t]
|
|
36
|
+
- COVERAGE: 96.81% -- 880/909 lines in 10 files
|
|
37
|
+
- BRANCH COVERAGE: 85.17% -- 224/263 branches in 10 files
|
|
38
|
+
- 36.73% documented
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- kettle-jem-template-20260727-001 - Spec harness documentation now lists the
|
|
43
|
+
RSpec helpers provided by `kettle-test`.
|
|
44
|
+
|
|
45
|
+
- kettle-jem-template-20260729-005 - Gemspec metadata now publishes this
|
|
46
|
+
project's RubyForum tag as `mailing_list_uri`, and support docs link to the
|
|
47
|
+
tagged RubyForum community alongside Discord.
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
|
|
51
|
+
- kettle-jem-template-20260728-001 - Generated Ruby workflows now use clearer
|
|
52
|
+
setup-ruby-flash planning and can prepare appraisal-only jobs without
|
|
53
|
+
installing the main Gemfile bundle.
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
|
|
57
|
+
- kettle-jem-template-20260728-002 - Generated RuboCop configs now ignore the
|
|
58
|
+
same `gemfiles/vendor/bundle` tree as `.gitignore`, so vendored dependency
|
|
59
|
+
installs are not reported as project lint debt.
|
|
60
|
+
- kettle-jem-template-20260728-003 - Generated dep-heads workflows now run
|
|
61
|
+
TruffleRuby jobs with current RubyGems and Bundler, avoiding setup failures
|
|
62
|
+
before the test suite starts.
|
|
63
|
+
|
|
64
|
+
- kettle-jem-template-20260728-004 - Generated dep-heads workflows now use the
|
|
65
|
+
setup-ruby Bundler install path for direct appraisal Gemfiles, avoiding rv
|
|
66
|
+
lockfile parser failures on Git and path dependencies.
|
|
67
|
+
|
|
68
|
+
- kettle-jem-template-20260728-005 - VersionGem bootstrap now creates the
|
|
69
|
+
missing canonical version spec when a project only has shim namespace version
|
|
70
|
+
specs.
|
|
71
|
+
|
|
72
|
+
- kettle-jem-template-20260729-001 - Generated JRuby 9.4 workflows now use the
|
|
73
|
+
legacy manual bundle install path, avoiding setup-time Bundler full-index
|
|
74
|
+
failures against `gem.coop`.
|
|
75
|
+
|
|
76
|
+
- kettle-jem-template-20260729-002 - VersionGem bootstrap now preserves
|
|
77
|
+
and templates dedicated `version_gem.rb` entrypoints even when the gemspec
|
|
78
|
+
dependency is intentionally omitted, and generated anonymous-loader specs
|
|
79
|
+
cover both `version.rb` and `version_gem.rb`.
|
|
80
|
+
|
|
81
|
+
- kettle-jem-template-20260729-003 - Old-Ruby gems below the VersionGem runtime
|
|
82
|
+
floor now get managed minimal `version.rb` files and anonymous-loader version
|
|
83
|
+
specs without adding `version_gem`.
|
|
84
|
+
- kettle-jem-template-20260730-001 - Gemspec package file enumeration now runs
|
|
85
|
+
relative to the gemspec directory, so packaged template assets are included
|
|
86
|
+
even when the gemspec is loaded from another working directory.
|
|
87
|
+
|
|
88
|
+
## [3.2.3] - 2026-07-26
|
|
89
|
+
|
|
90
|
+
- TAG: [v3.2.3][3.2.3t]
|
|
91
|
+
- COVERAGE: 96.81% -- 880/909 lines in 10 files
|
|
92
|
+
- BRANCH COVERAGE: 85.17% -- 224/263 branches in 10 files
|
|
93
|
+
- 36.73% documented
|
|
94
|
+
|
|
95
|
+
### Added
|
|
96
|
+
|
|
97
|
+
- Documentation linting now has its generated `yard-lint` dependency and severity config available in the local bundle.
|
|
98
|
+
|
|
99
|
+
- kettle-jem-template-20260726-001 - Projects now include YARD lint
|
|
100
|
+
configuration and documentation dependencies so documentation issues fail
|
|
101
|
+
before generated docs are refreshed.
|
|
102
|
+
|
|
103
|
+
### Fixed
|
|
104
|
+
|
|
105
|
+
- Worker stdout that happens to contain `RSPEC_FORMATTER_OUTPUT_ID` is now kept
|
|
106
|
+
as ordinary output instead of being parsed as an internal formatter message.
|
|
107
|
+
- kettle-jem-template-20260726-002 - Generated version files now document their
|
|
108
|
+
version namespace and constants, reducing warning-only YARD lint output.
|
|
109
|
+
|
|
110
|
+
- kettle-jem-template-20260726-003 - Coverage upload steps now treat Coveralls,
|
|
111
|
+
QLTY, and Codecov as optional, so provider outages do not fail CI when local
|
|
112
|
+
coverage thresholds still pass.
|
|
113
|
+
|
|
114
|
+
### Changed
|
|
115
|
+
|
|
116
|
+
- README guidance now distinguishes the `TurboTests` namespace from the
|
|
117
|
+
published `turbo_tests2` gem and executable names, and its Rake/SimpleCov
|
|
118
|
+
examples now use `turbo_tests2` task filenames while keeping SimpleCov's
|
|
119
|
+
default `coverage/` base directory.
|
|
120
|
+
|
|
33
121
|
## [3.2.2] - 2026-07-25
|
|
34
122
|
|
|
35
123
|
- TAG: [v3.2.2][3.2.2t]
|
|
@@ -415,7 +503,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
415
503
|
|
|
416
504
|
- Initial release
|
|
417
505
|
|
|
418
|
-
[Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.2.
|
|
506
|
+
[Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.2.4...HEAD
|
|
507
|
+
[3.2.4]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.2.3...v3.2.4
|
|
508
|
+
[3.2.4t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.2.4
|
|
509
|
+
[3.2.3]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.2.2...v3.2.3
|
|
510
|
+
[3.2.3t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.2.3
|
|
419
511
|
[3.2.2]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.2.1...v3.2.2
|
|
420
512
|
[3.2.2t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.2.2
|
|
421
513
|
[3.2.1]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.2.0...v3.2.1
|
data/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
# 🚀 TurboTests
|
|
4
4
|
|
|
5
|
-
[![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
|
|
5
|
+
[![Version][👽versioni]][👽version] [![Ruby Users Forum][✉️ruby-forum-top-img]][✉️ruby-forum] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
|
|
6
6
|
|
|
7
|
-
`if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][✉️discord-invite], as I may have missed the
|
|
7
|
+
`if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know on Discord][✉️discord-invite] or [RubyForum][✉️ruby-forum], as I may have missed the notification.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -26,6 +26,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta
|
|
|
26
26
|
| I ([@pboling](https://github.com/pboling)) discussed merging this project back into the original `turbo_tests` with [@ilyazub](https://github.com/ilyazub), and we might move in that direction, but it will take time. Since I need this now I'm releasing it as a separate gem/project. We'll be discussing potentially unifying the projects again soon. |
|
|
27
27
|
|
|
28
28
|
`turbo_tests2` is an RSpec parallel test runner built on [grosser/parallel_tests](https://github.com/grosser/parallel_tests). It uses `parallel_tests` for process counts, file grouping, and runtime balancing, then replaces interleaved worker output with incremental summarized RSpec reporting. Source code of this gem is based on [Discourse](https://github.com/discourse/discourse/blob/6b9784cf8a18636bce281a7e4d18e65a0cbc6290/lib/turbo_tests.rb) and [RubyGems](https://github.com/rubygems/rubygems/tree/390335ceb351668cd433bd5bb9823dd021f82533/bundler/tool) work in this area.
|
|
29
|
+
The project namespace remains `TurboTests`; the published gem and executable are `turbo_tests2`.
|
|
29
30
|
|
|
30
31
|
Incremental summarized output doesn't [fit the vision](https://github.com/grosser/parallel_tests/issues/708) of the `parallel_tests` author, and [RSpec doesn't support built-in parallel testing yet](https://github.com/rspec/rspec-rails/issues/2104#issuecomment-658474900). This gem targets RSpec, not every framework supported by `parallel_tests`, and may not be useful once one of the issues above is implemented.
|
|
31
32
|
|
|
@@ -111,17 +112,14 @@ The _amazing_ test matrix is powered by the kettle-dev stack.
|
|
|
111
112
|
<details markdown="1">
|
|
112
113
|
<summary>Find this repo on federated forges (Coming soon!)</summary>
|
|
113
114
|
|
|
114
|
-
| Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI |
|
|
115
|
-
|
|
116
|
-
| 🧪 [galtzo-floss/turbo_tests2 on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix |
|
|
117
|
-
| 🧊 [galtzo-floss/turbo_tests2 on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix |
|
|
118
|
-
| 🐙 [galtzo-floss/turbo_tests2 on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix |
|
|
119
|
-
| 🎮️ [Discord Server][✉️discord-invite] | [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] | [Let's][✉️discord-invite] | [talk][✉️discord-invite] | [about][✉️discord-invite] | [this][✉️discord-invite] | [library!][✉️discord-invite] |
|
|
115
|
+
| Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI |
|
|
116
|
+
|-------------------------------------------------|-------------------------------------------|-------------------|------------------|-----------------|----------------|
|
|
117
|
+
| 🧪 [galtzo-floss/turbo_tests2 on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix |
|
|
118
|
+
| 🧊 [galtzo-floss/turbo_tests2 on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix |
|
|
119
|
+
| 🐙 [galtzo-floss/turbo_tests2 on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix |
|
|
120
120
|
|
|
121
121
|
</details>
|
|
122
122
|
|
|
123
|
-
[gh-discussions]: https://github.com/galtzo-floss/turbo_tests2/discussions
|
|
124
|
-
|
|
125
123
|
### Enterprise Support [](https://tidelift.com/subscription/pkg/rubygems-turbo_tests2?utm_source=rubygems-turbo_tests2&utm_medium=referral&utm_campaign=readme)
|
|
126
124
|
|
|
127
125
|
Available as part of the Tidelift Subscription.
|
|
@@ -139,6 +137,7 @@ The maintainers of this and thousands of other packages are working with Tidelif
|
|
|
139
137
|
|
|
140
138
|
Alternatively:
|
|
141
139
|
|
|
140
|
+
- [![Ruby Users Forum][✉️ruby-forum-img]][✉️ruby-forum]
|
|
142
141
|
- [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
|
|
143
142
|
- [![Get help from me on Upwork][👨🏼🏫expsup-upwork-img]][👨🏼🏫expsup-upwork]
|
|
144
143
|
- [![Get help from me on Codementor][👨🏼🏫expsup-codementor-img]][👨🏼🏫expsup-codementor]
|
|
@@ -336,7 +335,7 @@ If Rake is present, the CLI will invoke the tasks `turbo_tests2:setup` and `turb
|
|
|
336
335
|
the test suite. These can be used to do work that should only happen once, such as removing files or collating coverage:
|
|
337
336
|
|
|
338
337
|
```ruby
|
|
339
|
-
# lib/tasks/
|
|
338
|
+
# lib/tasks/turbo_tests2.rake
|
|
340
339
|
namespace :turbo_tests2 do
|
|
341
340
|
task setup: :environment do
|
|
342
341
|
# precompile assets once, to avoid doing it per each process
|
|
@@ -366,7 +365,7 @@ require "simplecov"
|
|
|
366
365
|
SimpleCov.start("rails") do
|
|
367
366
|
enable_coverage :branch
|
|
368
367
|
|
|
369
|
-
coverage_dir "coverage
|
|
368
|
+
coverage_dir "coverage/#{ENV["TEST_ENV_NUMBER"]}"
|
|
370
369
|
|
|
371
370
|
formatter SimpleCov::Formatter::SimpleFormatter
|
|
372
371
|
end
|
|
@@ -375,14 +374,14 @@ end
|
|
|
375
374
|
namespace :turbo_tests2 do
|
|
376
375
|
task setup: :environment do
|
|
377
376
|
# remove any existing coverage files to avoid false reporting
|
|
378
|
-
FileUtils.rm_rf("coverage
|
|
377
|
+
FileUtils.rm_rf("coverage")
|
|
379
378
|
end
|
|
380
379
|
|
|
381
380
|
task cleanup: :environment do
|
|
382
381
|
require "simplecov"
|
|
383
382
|
|
|
384
383
|
# report coverage usage based on the results of all tests
|
|
385
|
-
SimpleCov.collate(Dir["coverage
|
|
384
|
+
SimpleCov.collate(Dir["coverage/*/.resultset.json"]) do
|
|
386
385
|
enable_coverage :branch
|
|
387
386
|
|
|
388
387
|
minimum_coverage line: 100, branch: 100
|
|
@@ -567,11 +566,12 @@ I'm hoping to be able to pay for my kids' health insurance this month,
|
|
|
567
566
|
so if you value the work I am doing, I need your support.
|
|
568
567
|
Please consider sponsoring me or the project.
|
|
569
568
|
|
|
570
|
-
To join the community or get help
|
|
569
|
+
To join the community or get help, use the RubyForum or Discord.
|
|
571
570
|
|
|
571
|
+
[![Ruby Users Forum][✉️ruby-forum-img]][✉️ruby-forum]
|
|
572
572
|
[![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
|
|
573
573
|
|
|
574
|
-
To say "thanks!" ☝️ Join the
|
|
574
|
+
To say "thanks!" ☝️ Join the community or 👇️ send money.
|
|
575
575
|
|
|
576
576
|
[![Sponsor galtzo-floss/turbo_tests2 on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
|
|
577
577
|
|
|
@@ -612,8 +612,9 @@ Thanks for RTFM. ☺️
|
|
|
612
612
|
[✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
|
|
613
613
|
[✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
|
|
614
614
|
[✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
|
|
615
|
-
[✉️ruby-forum-img]: https://img.shields.io/
|
|
616
|
-
[✉️ruby-forum]: https://
|
|
615
|
+
[✉️ruby-forum-top-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=flat&logo=discourse&label=Ruby%20Users%20Forum
|
|
616
|
+
[✉️ruby-forum-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=for-the-badge&logo=discourse&label=Ruby%20Users%20Forum
|
|
617
|
+
[✉️ruby-forum]: https://www.rubyforum.org/tag/turbo-tests2
|
|
617
618
|
|
|
618
619
|
[✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
|
|
619
620
|
[⛳️gem-namespace]: https://github.com/galtzo-floss/turbo_tests2
|
|
@@ -769,7 +770,7 @@ Thanks for RTFM. ☺️
|
|
|
769
770
|
[📌gitmoji]: https://gitmoji.dev
|
|
770
771
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
771
772
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
772
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.
|
|
773
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.909-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
773
774
|
[🔐security]: https://github.com/galtzo-floss/turbo_tests2/blob/main/SECURITY.md
|
|
774
775
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
775
776
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/lib/turbo_tests/runner.rb
CHANGED
|
@@ -434,19 +434,7 @@ module TurboTests
|
|
|
434
434
|
begin
|
|
435
435
|
output_id = env["RSPEC_FORMATTER_OUTPUT_ID"].b
|
|
436
436
|
stdout.each_line do |line|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
initial = result.shift
|
|
440
|
-
append_worker_output(process_id, :stdout, initial) unless initial.empty?
|
|
441
|
-
|
|
442
|
-
message = result.shift
|
|
443
|
-
next unless message
|
|
444
|
-
|
|
445
|
-
message = message.dup.force_encoding(Encoding::UTF_8).scrub
|
|
446
|
-
message = JSON.parse(message, symbolize_names: true)
|
|
447
|
-
|
|
448
|
-
message[:process_id] = process_id
|
|
449
|
-
@messages << message
|
|
437
|
+
parse_worker_stdout_line(line, output_id, process_id)
|
|
450
438
|
end
|
|
451
439
|
rescue IOError
|
|
452
440
|
nil
|
|
@@ -525,6 +513,37 @@ module TurboTests
|
|
|
525
513
|
io.write(msg) if stream_worker_output?
|
|
526
514
|
end
|
|
527
515
|
|
|
516
|
+
def parse_worker_stdout_line(line, output_id, process_id)
|
|
517
|
+
remaining = line.b.dup
|
|
518
|
+
loop do
|
|
519
|
+
before, separator, after = remaining.partition(output_id)
|
|
520
|
+
append_worker_output(process_id, :stdout, before) unless before.empty?
|
|
521
|
+
break if separator.empty?
|
|
522
|
+
|
|
523
|
+
if after.start_with?("{")
|
|
524
|
+
message = parse_worker_json_message(after, process_id)
|
|
525
|
+
if message
|
|
526
|
+
@messages << message
|
|
527
|
+
break
|
|
528
|
+
end
|
|
529
|
+
end
|
|
530
|
+
|
|
531
|
+
append_worker_output(process_id, :stdout, separator)
|
|
532
|
+
remaining = after
|
|
533
|
+
end
|
|
534
|
+
end
|
|
535
|
+
|
|
536
|
+
def parse_worker_json_message(raw_message, process_id)
|
|
537
|
+
message = raw_message.dup.force_encoding(Encoding::UTF_8).scrub
|
|
538
|
+
message = JSON.parse(message, symbolize_names: true)
|
|
539
|
+
return unless message.is_a?(Hash) && message[:type].is_a?(String)
|
|
540
|
+
|
|
541
|
+
message[:process_id] = process_id
|
|
542
|
+
message
|
|
543
|
+
rescue JSON::ParserError
|
|
544
|
+
nil
|
|
545
|
+
end
|
|
546
|
+
|
|
528
547
|
def stream_worker_output?
|
|
529
548
|
@verbose || @worker_output_mode == :stream
|
|
530
549
|
end
|
data/lib/turbo_tests/version.rb
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module TurboTests
|
|
4
|
+
# Version namespace for this gem.
|
|
4
5
|
module Version
|
|
5
|
-
|
|
6
|
+
# Current gem version.
|
|
7
|
+
VERSION = "3.2.4"
|
|
6
8
|
end
|
|
9
|
+
# Current gem version exposed at the traditional constant location.
|
|
7
10
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
8
11
|
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.2.
|
|
4
|
+
version: 3.2.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Illia
|
|
@@ -107,20 +107,20 @@ dependencies:
|
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '2.
|
|
110
|
+
version: '2.5'
|
|
111
111
|
- - ">="
|
|
112
112
|
- !ruby/object:Gem::Version
|
|
113
|
-
version: 2.
|
|
113
|
+
version: 2.5.13
|
|
114
114
|
type: :development
|
|
115
115
|
prerelease: false
|
|
116
116
|
version_requirements: !ruby/object:Gem::Requirement
|
|
117
117
|
requirements:
|
|
118
118
|
- - "~>"
|
|
119
119
|
- !ruby/object:Gem::Version
|
|
120
|
-
version: '2.
|
|
120
|
+
version: '2.5'
|
|
121
121
|
- - ">="
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 2.
|
|
123
|
+
version: 2.5.13
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: bundler-audit
|
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -218,7 +218,7 @@ dependencies:
|
|
|
218
218
|
version: '2.0'
|
|
219
219
|
- - ">="
|
|
220
220
|
- !ruby/object:Gem::Version
|
|
221
|
-
version: 2.0.
|
|
221
|
+
version: 2.0.17
|
|
222
222
|
type: :development
|
|
223
223
|
prerelease: false
|
|
224
224
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -228,7 +228,7 @@ dependencies:
|
|
|
228
228
|
version: '2.0'
|
|
229
229
|
- - ">="
|
|
230
230
|
- !ruby/object:Gem::Version
|
|
231
|
-
version: 2.0.
|
|
231
|
+
version: 2.0.17
|
|
232
232
|
- !ruby/object:Gem::Dependency
|
|
233
233
|
name: ruby-progressbar
|
|
234
234
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -252,7 +252,7 @@ dependencies:
|
|
|
252
252
|
version: '1.0'
|
|
253
253
|
- - ">="
|
|
254
254
|
- !ruby/object:Gem::Version
|
|
255
|
-
version: 1.0.
|
|
255
|
+
version: 1.0.8
|
|
256
256
|
type: :development
|
|
257
257
|
prerelease: false
|
|
258
258
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -262,7 +262,7 @@ dependencies:
|
|
|
262
262
|
version: '1.0'
|
|
263
263
|
- - ">="
|
|
264
264
|
- !ruby/object:Gem::Version
|
|
265
|
-
version: 1.0.
|
|
265
|
+
version: 1.0.8
|
|
266
266
|
- !ruby/object:Gem::Dependency
|
|
267
267
|
name: gitmoji-regex
|
|
268
268
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -272,7 +272,7 @@ dependencies:
|
|
|
272
272
|
version: '2.0'
|
|
273
273
|
- - ">="
|
|
274
274
|
- !ruby/object:Gem::Version
|
|
275
|
-
version: 2.0.
|
|
275
|
+
version: 2.0.11
|
|
276
276
|
type: :development
|
|
277
277
|
prerelease: false
|
|
278
278
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -282,7 +282,7 @@ dependencies:
|
|
|
282
282
|
version: '2.0'
|
|
283
283
|
- - ">="
|
|
284
284
|
- !ruby/object:Gem::Version
|
|
285
|
-
version: 2.0.
|
|
285
|
+
version: 2.0.11
|
|
286
286
|
description: "\U0001F680 turbo_tests2` is an RSpec parallel test runner built on `parallel_tests`.
|
|
287
287
|
It uses `parallel_tests` for process counts, file grouping, and runtime balancing,
|
|
288
288
|
then replaces interleaved worker output with incremental summarized RSpec reporting.
|
|
@@ -314,14 +314,15 @@ licenses:
|
|
|
314
314
|
- MIT
|
|
315
315
|
metadata:
|
|
316
316
|
homepage_uri: https://turbo-tests2.galtzo.com
|
|
317
|
-
source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.2.
|
|
318
|
-
changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.2.
|
|
317
|
+
source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.2.4
|
|
318
|
+
changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.2.4/CHANGELOG.md
|
|
319
319
|
bug_tracker_uri: https://github.com/galtzo-floss/turbo_tests2/issues
|
|
320
|
-
documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.2.
|
|
320
|
+
documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.2.4
|
|
321
321
|
funding_uri: https://github.com/sponsors/pboling
|
|
322
322
|
wiki_uri: https://github.com/galtzo-floss/turbo_tests2/wiki
|
|
323
323
|
news_uri: https://www.railsbling.com/tags/turbo_tests2
|
|
324
324
|
discord_uri: https://discord.gg/3qme4XHNKN
|
|
325
|
+
mailing_list_uri: https://www.rubyforum.org/tag/turbo-tests2
|
|
325
326
|
rubygems_mfa_required: 'true'
|
|
326
327
|
rdoc_options:
|
|
327
328
|
- "--title"
|
metadata.gz.sig
CHANGED
|
Binary file
|