henitai 0.1.10 → 0.2.1

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +94 -1
  3. data/README.md +33 -7
  4. data/assets/schema/henitai.schema.json +6 -0
  5. data/lib/henitai/cli/clean_command.rb +48 -0
  6. data/lib/henitai/cli/command_support.rb +51 -0
  7. data/lib/henitai/cli/init_command.rb +64 -0
  8. data/lib/henitai/cli/operator_command.rb +95 -0
  9. data/lib/henitai/cli/options.rb +120 -0
  10. data/lib/henitai/cli/run_command.rb +103 -0
  11. data/lib/henitai/cli.rb +17 -327
  12. data/lib/henitai/configuration.rb +26 -12
  13. data/lib/henitai/configuration_validator/rules.rb +143 -0
  14. data/lib/henitai/configuration_validator/scalars.rb +123 -0
  15. data/lib/henitai/configuration_validator.rb +12 -239
  16. data/lib/henitai/coverage_bootstrapper.rb +24 -24
  17. data/lib/henitai/eager_load.rb +36 -5
  18. data/lib/henitai/execution_engine.rb +6 -11
  19. data/lib/henitai/git_diff_analyzer.rb +34 -0
  20. data/lib/henitai/integration/base.rb +171 -0
  21. data/lib/henitai/integration/child_debug_support.rb +115 -0
  22. data/lib/henitai/integration/child_runtime_control.rb +50 -0
  23. data/lib/henitai/integration/coverage_suppression.rb +43 -0
  24. data/lib/henitai/integration/minitest.rb +133 -0
  25. data/lib/henitai/integration/mutant_run_support.rb +77 -0
  26. data/lib/henitai/integration/rspec_child_runner.rb +61 -0
  27. data/lib/henitai/integration/rspec_process_runner.rb +66 -13
  28. data/lib/henitai/integration/rspec_test_selection.rb +135 -0
  29. data/lib/henitai/integration/scenario_log_support.rb +116 -0
  30. data/lib/henitai/integration.rb +43 -519
  31. data/lib/henitai/mutant/activator.rb +13 -79
  32. data/lib/henitai/mutant/parameter_source.rb +98 -0
  33. data/lib/henitai/mutant.rb +14 -2
  34. data/lib/henitai/mutant_generator.rb +21 -2
  35. data/lib/henitai/mutant_history_store/sql.rb +72 -0
  36. data/lib/henitai/mutant_history_store.rb +12 -91
  37. data/lib/henitai/mutant_identity.rb +34 -0
  38. data/lib/henitai/parallel_execution_runner.rb +29 -11
  39. data/lib/henitai/per_test_coverage_collector.rb +3 -1
  40. data/lib/henitai/process_wakeup.rb +49 -0
  41. data/lib/henitai/process_worker_runner.rb +148 -0
  42. data/lib/henitai/reporter.rb +96 -11
  43. data/lib/henitai/result.rb +49 -16
  44. data/lib/henitai/runner.rb +96 -30
  45. data/lib/henitai/scenario_execution_result.rb +16 -3
  46. data/lib/henitai/slot_scheduler/draining.rb +140 -0
  47. data/lib/henitai/slot_scheduler/process_control.rb +43 -0
  48. data/lib/henitai/slot_scheduler.rb +214 -0
  49. data/lib/henitai/static_filter.rb +10 -3
  50. data/lib/henitai/survivor_activation_cache.rb +81 -0
  51. data/lib/henitai/survivor_loader.rb +140 -0
  52. data/lib/henitai/survivor_rerun_strategy.rb +195 -0
  53. data/lib/henitai/survivor_selector.rb +36 -0
  54. data/lib/henitai/survivor_test_filter.rb +72 -0
  55. data/lib/henitai/unparse_helper.rb +5 -2
  56. data/lib/henitai/version.rb +1 -1
  57. data/lib/henitai.rb +10 -0
  58. data/sig/configuration_validator.rbs +46 -22
  59. data/sig/henitai.rbs +329 -53
  60. metadata +46 -2
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: henitai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Otten
@@ -9,6 +9,20 @@ bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: minitest
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '5.25'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '5.25'
12
26
  - !ruby/object:Gem::Dependency
13
27
  name: prism
14
28
  requirement: !ruby/object:Gem::Requirement
@@ -90,8 +104,16 @@ files:
90
104
  - lib/henitai/arid_node_filter.rb
91
105
  - lib/henitai/available_cpu_count.rb
92
106
  - lib/henitai/cli.rb
107
+ - lib/henitai/cli/clean_command.rb
108
+ - lib/henitai/cli/command_support.rb
109
+ - lib/henitai/cli/init_command.rb
110
+ - lib/henitai/cli/operator_command.rb
111
+ - lib/henitai/cli/options.rb
112
+ - lib/henitai/cli/run_command.rb
93
113
  - lib/henitai/configuration.rb
94
114
  - lib/henitai/configuration_validator.rb
115
+ - lib/henitai/configuration_validator/rules.rb
116
+ - lib/henitai/configuration_validator/scalars.rb
95
117
  - lib/henitai/coverage_bootstrapper.rb
96
118
  - lib/henitai/coverage_formatter.rb
97
119
  - lib/henitai/coverage_report_reader.rb
@@ -100,14 +122,26 @@ files:
100
122
  - lib/henitai/execution_engine.rb
101
123
  - lib/henitai/git_diff_analyzer.rb
102
124
  - lib/henitai/integration.rb
125
+ - lib/henitai/integration/base.rb
126
+ - lib/henitai/integration/child_debug_support.rb
127
+ - lib/henitai/integration/child_runtime_control.rb
128
+ - lib/henitai/integration/coverage_suppression.rb
129
+ - lib/henitai/integration/minitest.rb
130
+ - lib/henitai/integration/mutant_run_support.rb
131
+ - lib/henitai/integration/rspec_child_runner.rb
103
132
  - lib/henitai/integration/rspec_process_runner.rb
133
+ - lib/henitai/integration/rspec_test_selection.rb
134
+ - lib/henitai/integration/scenario_log_support.rb
104
135
  - lib/henitai/minitest_coverage_hook.rb
105
136
  - lib/henitai/minitest_coverage_reporter.rb
106
137
  - lib/henitai/minitest_simplecov.rb
107
138
  - lib/henitai/mutant.rb
108
139
  - lib/henitai/mutant/activator.rb
140
+ - lib/henitai/mutant/parameter_source.rb
109
141
  - lib/henitai/mutant_generator.rb
110
142
  - lib/henitai/mutant_history_store.rb
143
+ - lib/henitai/mutant_history_store/sql.rb
144
+ - lib/henitai/mutant_identity.rb
111
145
  - lib/henitai/operator.rb
112
146
  - lib/henitai/operators.rb
113
147
  - lib/henitai/operators/arithmetic_operator.rb
@@ -133,17 +167,27 @@ files:
133
167
  - lib/henitai/parser_current.rb
134
168
  - lib/henitai/per_test_coverage_collector.rb
135
169
  - lib/henitai/per_test_coverage_selector.rb
170
+ - lib/henitai/process_wakeup.rb
171
+ - lib/henitai/process_worker_runner.rb
136
172
  - lib/henitai/reporter.rb
137
173
  - lib/henitai/result.rb
138
174
  - lib/henitai/rspec_coverage_formatter.rb
139
175
  - lib/henitai/runner.rb
140
176
  - lib/henitai/sampling_strategy.rb
141
177
  - lib/henitai/scenario_execution_result.rb
178
+ - lib/henitai/slot_scheduler.rb
179
+ - lib/henitai/slot_scheduler/draining.rb
180
+ - lib/henitai/slot_scheduler/process_control.rb
142
181
  - lib/henitai/source_parser.rb
143
182
  - lib/henitai/static_filter.rb
144
183
  - lib/henitai/stillborn_filter.rb
145
184
  - lib/henitai/subject.rb
146
185
  - lib/henitai/subject_resolver.rb
186
+ - lib/henitai/survivor_activation_cache.rb
187
+ - lib/henitai/survivor_loader.rb
188
+ - lib/henitai/survivor_rerun_strategy.rb
189
+ - lib/henitai/survivor_selector.rb
190
+ - lib/henitai/survivor_test_filter.rb
147
191
  - lib/henitai/syntax_validator.rb
148
192
  - lib/henitai/test_prioritizer.rb
149
193
  - lib/henitai/unparse_helper.rb
@@ -160,7 +204,7 @@ metadata:
160
204
  changelog_uri: https://github.com/martinotten/henitai/blob/main/CHANGELOG.md
161
205
  documentation_uri: https://github.com/martinotten/henitai/blob/main/README.md
162
206
  homepage_uri: https://github.com/martinotten/henitai
163
- source_code_uri: https://github.com/martinotten/henitai/tree/v0.1.10
207
+ source_code_uri: https://github.com/martinotten/henitai/tree/v0.2.1
164
208
  rubygems_mfa_required: 'true'
165
209
  rdoc_options: []
166
210
  require_paths: