henitai 0.1.8 → 0.2.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.
data/lib/henitai.rb CHANGED
@@ -26,6 +26,7 @@ module Henitai
26
26
  autoload :PerTestCoverageSelector, "henitai/per_test_coverage_selector"
27
27
  autoload :Subject, "henitai/subject"
28
28
  autoload :Mutant, "henitai/mutant"
29
+ autoload :MutantIdentity, "henitai/mutant_identity"
29
30
  autoload :Operator, "henitai/operator"
30
31
  autoload :Operators, "henitai/operators"
31
32
  autoload :SourceParser, "henitai/source_parser"
@@ -39,6 +40,10 @@ module Henitai
39
40
  autoload :EquivalenceDetector, "henitai/equivalence_detector"
40
41
  autoload :StaticFilter, "henitai/static_filter"
41
42
  autoload :StillbornFilter, "henitai/stillborn_filter"
43
+ autoload :SurvivorLoader, "henitai/survivor_loader"
44
+ autoload :SurvivorSelector, "henitai/survivor_selector"
45
+ autoload :SurvivorTestFilter, "henitai/survivor_test_filter"
46
+ autoload :SurvivorActivationCache, "henitai/survivor_activation_cache"
42
47
  autoload :ScenarioExecutionResult, "henitai/scenario_execution_result"
43
48
  autoload :CoverageFormatter, "henitai/coverage_formatter"
44
49
  autoload :MinitestCoverageReporter, "henitai/minitest_coverage_reporter"
@@ -47,6 +52,9 @@ module Henitai
47
52
  autoload :SamplingStrategy, "henitai/sampling_strategy"
48
53
  autoload :TestPrioritizer, "henitai/test_prioritizer"
49
54
  autoload :ExecutionEngine, "henitai/execution_engine"
55
+ autoload :ParallelExecutionRunner, "henitai/parallel_execution_runner"
56
+ autoload :ProcessWorkerRunner, "henitai/process_worker_runner"
57
+ autoload :ProcessWakeup, "henitai/process_wakeup"
50
58
  autoload :Runner, "henitai/runner"
51
59
  autoload :Reporter, "henitai/reporter"
52
60
  autoload :Integration, "henitai/integration"
data/sig/henitai.rbs CHANGED
@@ -73,6 +73,38 @@ module Henitai
73
73
  module Operators
74
74
  end
75
75
 
76
+ module Integration::ChildDebugSupport
77
+ private
78
+
79
+ def run_rspec_runner: (Array[String]) -> untyped
80
+ def build_rspec_runner: () -> untyped
81
+ def configure_rspec_runner: (untyped) -> void
82
+ def load_rspec_spec_files: (Array[String]) -> void
83
+ def run_rspec_specs: (untyped) -> untyped
84
+ def debug_child_timeout_dump: (Integer) -> void
85
+ def install_debug_timeout_trap: () -> void
86
+ def debug_child_thread_dump: (String) -> void
87
+ def debug_child_puts: (String) -> void
88
+ def debug_child?: () -> bool
89
+ def debug_child_rspec_trace: (
90
+ test_files: Array[String],
91
+ rspec_options: Array[String],
92
+ rspec_argv: Array[String]
93
+ ) -> void
94
+ def debug_child_rspec_exit: (untyped) -> void
95
+ def debug_child_example_count: (String) -> void
96
+ def debug_child_activation_start: (String) -> void
97
+ def debug_child_activation_end: (untyped, test_files: Array[String]) -> void
98
+ def debug_child_mutant_meta: (Mutant) -> void
99
+ def debug_child_activation_check: () -> void
100
+ def suppress_simplecov!: () -> void
101
+ def suppress_coverage!: () -> void
102
+ def loaded_feature_map: (Array[String]) -> Array[[String, bool]]
103
+ def loaded_feature?: (String) -> bool
104
+ def rspec_world_example_count: () -> Integer?
105
+ def pause: (Float) -> void
106
+ end
107
+
76
108
  class Configuration
77
109
  DEFAULT_TIMEOUT: Float
78
110
  DEFAULT_OPERATORS: Symbol
@@ -106,11 +138,14 @@ module Henitai
106
138
  private
107
139
 
108
140
  def load_raw_configuration: (String) -> Hash[Symbol, untyped]
141
+ def detect_integration: () -> String
109
142
  def apply_defaults: (Hash[Symbol, untyped]) -> void
110
143
  def apply_general_defaults: (Hash[Symbol, untyped]) -> void
111
144
  def apply_mutation_defaults: (Hash[Symbol, untyped]) -> void
112
145
  def apply_analysis_defaults: (Hash[Symbol, untyped]) -> void
113
146
  def merge_defaults: (Hash[Symbol, untyped], Hash[Symbol, untyped]?) -> Hash[Symbol, untyped]
147
+ def resolve_integration_default: (untyped) -> untyped
148
+ def default_dashboard: (Hash[Symbol, untyped]?) -> Hash[Symbol, untyped]
114
149
  def symbolize_keys: (untyped) -> untyped
115
150
  end
116
151
 
@@ -171,8 +206,11 @@ module Henitai
171
206
  attr_accessor duration: Float?
172
207
  attr_accessor covered_by: Array[String]?
173
208
  attr_accessor tests_completed: Integer?
209
+ attr_reader precomputed_stable_id: String?
210
+ attr_reader precomputed_activation_source: String?
174
211
 
175
- def initialize: (subject: Subject, operator: String, nodes: Hash[Symbol, untyped], description: String, location: Hash[Symbol, untyped]) -> void
212
+ def initialize: (subject: Subject, operator: String, nodes: Hash[Symbol, untyped], description: String, location: Hash[Symbol, untyped], ?precomputed_stable_id: String?, ?precomputed_activation_source: String?) -> void
213
+ def stable_id: () -> String
176
214
  def killed?: () -> bool
177
215
  def survived?: () -> bool
178
216
  def pending?: () -> bool
@@ -256,9 +294,12 @@ module Henitai
256
294
  def self.for: (String) -> untyped
257
295
 
258
296
  class Base
297
+ include ChildDebugSupport
298
+
259
299
  def select_tests: (Subject) -> Array[String]
260
300
  def test_files: () -> Array[String]
261
301
  def run_mutant: (mutant: Mutant, test_files: Array[String], timeout: Float) -> ScenarioExecutionResult
302
+ def spawn_mutant: (mutant: Mutant, test_files: Array[String]) -> ChildHandle
262
303
  def run_suite: (Array[String], ?timeout: Float) -> ScenarioExecutionResult
263
304
  def per_test_coverage_supported?: () -> bool
264
305
  def wait_with_timeout: (Integer, Float) -> untyped
@@ -268,9 +309,26 @@ module Henitai
268
309
  private
269
310
 
270
311
  def pause: (Float) -> void
312
+ def wait_nonblocking: (Integer) -> untyped
271
313
  def handle_timeout: (Integer) -> Symbol
272
314
  def cleanup_child_process: (Integer) -> void
273
- def rspec_options: () -> Array[String]
315
+ def suppress_simplecov!: () -> void
316
+ def suppress_coverage!: () -> void
317
+ def run_tests: (Array[String]) -> Integer
318
+ def debug_child?: () -> bool
319
+ def debug_child_puts: (String) -> void
320
+ def debug_child_rspec_trace: (test_files: Array[String], rspec_options: Array[String], rspec_argv: Array[String]) -> void
321
+ def debug_child_rspec_exit: (untyped status) -> void
322
+ def debug_child_activation_start: (String mutant_id) -> void
323
+ def debug_child_activation_end: (untyped activation_result, test_files: Array[String]) -> void
324
+ def debug_child_mutant_meta: (Mutant) -> void
325
+ def debug_child_activation_check: () -> void
326
+ def debug_child_example_count: (String) -> void
327
+ def loaded_feature_map: (Array[String]) -> Array[[String, bool]]
328
+ def loaded_feature?: (String) -> bool
329
+ def rspec_world_example_count: () -> Integer?
330
+ def run_child_activation_and_tests: (mutant: Mutant, test_files: Array[String], log_paths: Hash[Symbol, String]) -> Integer
331
+ def with_non_interactive_stdin: () { () -> untyped } -> untyped
274
332
  def subprocess_env: () -> Hash[String, String]
275
333
  def scenario_log_support: () -> ScenarioLogSupport
276
334
  def with_subprocess_env: () { () -> untyped } -> untyped
@@ -300,9 +358,25 @@ module Henitai
300
358
  def stderr_stream: () -> IO
301
359
  end
302
360
 
361
+ module SchedulerDiagnostics
362
+ def self.enabled?: () -> bool
363
+ def self.child_started: (Integer?) -> void
364
+ def self.child_ended: (Integer?) -> void
365
+ def self.summary: () -> Hash[Symbol, untyped]
366
+ def self.reset!: () -> void
367
+ end
368
+
369
+ class ChildHandle
370
+ attr_accessor pid: Integer?
371
+ attr_accessor log_paths: Hash[Symbol, String]
372
+
373
+ def initialize: (pid: Integer?, log_paths: Hash[Symbol, String]) -> void
374
+ end
375
+
303
376
  class RspecProcessRunner
304
377
  def run_mutant: (Rspec, mutant: Mutant, test_files: Array[String], timeout: Float) -> ScenarioExecutionResult
305
378
  def run_suite: (Rspec, Array[String], timeout: Float) -> ScenarioExecutionResult
379
+ def spawn_mutant: (Rspec, mutant: Mutant, test_files: Array[String], log_paths: Hash[Symbol, String]) -> ChildHandle
306
380
  end
307
381
 
308
382
  class Rspec < Base
@@ -312,13 +386,21 @@ module Henitai
312
386
  def select_tests: (Subject) -> Array[String]
313
387
  def test_files: () -> Array[String]
314
388
  def run_mutant: (mutant: Mutant, test_files: Array[String], timeout: Float) -> ScenarioExecutionResult
389
+ def spawn_mutant: (mutant: Mutant, test_files: Array[String]) -> ChildHandle
315
390
  def run_suite: (Array[String], ?timeout: Float) -> ScenarioExecutionResult
316
391
  def per_test_coverage_supported?: () -> bool
317
392
 
318
393
  private
319
394
 
395
+ def mutant_log_name: (Mutant) -> String
320
396
  def run_in_child: (mutant: Mutant, test_files: Array[String], log_paths: Hash[Symbol, String]) -> Integer
397
+ def suppress_simplecov!: () -> void
398
+ def suppress_coverage!: () -> void
399
+ def install_debug_timeout_trap: () -> void
400
+ def debug_child_thread_dump: (String) -> void
401
+ def debug_child_example_count: (String) -> void
321
402
  def suite_command: (Array[String]) -> Array[String]
403
+ def rspec_suite_runner_script: () -> String
322
404
  def build_result: (untyped, Hash[Symbol, String]) -> ScenarioExecutionResult
323
405
  def scenario_status: (untyped) -> Symbol
324
406
  def exit_status_for: (untyped) -> Integer?
@@ -339,13 +421,29 @@ module Henitai
339
421
  def requires_source_file_transitively?: (String, String, ?Array[String]) -> bool
340
422
  def required_files: (String) -> Array[String]
341
423
  def resolve_required_file: (String, String, String) -> String?
424
+ def loaded_feature_map: (Array[String]) -> Array[[String, bool]]
425
+ def loaded_feature?: (String) -> bool
342
426
  def relative_candidates: (String, String) -> Array[String]
343
427
  def require_candidates: (String, String) -> Array[String]
344
428
  def expand_candidates: (String, String) -> Array[String]
345
429
  end
346
430
 
431
+ module CoverageRuntimeSuppressors
432
+ def self.suppress_simplecov!: () -> void
433
+ def self.suppress_coverage!: () -> void
434
+ end
435
+
436
+ module SimpleCovStartSuppressor
437
+ def start: (*untyped) -> nil
438
+ end
439
+
440
+ module CoverageStartSuppressor
441
+ def start: (*untyped) -> nil
442
+ end
443
+
347
444
  class Minitest < Rspec
348
445
  def run_mutant: (mutant: Mutant, test_files: Array[String], timeout: Float) -> ScenarioExecutionResult
446
+ def spawn_mutant: (mutant: Mutant, test_files: Array[String]) -> ChildHandle
349
447
  def run_suite: (Array[String], ?timeout: Float) -> ScenarioExecutionResult
350
448
 
351
449
  private
@@ -354,6 +452,8 @@ module Henitai
354
452
  def run_tests: (Array[String]) -> Integer
355
453
  def preload_environment: () -> void
356
454
  def setup_load_path: () -> void
455
+ def suppress_minitest_autorun!: () -> nil
456
+ def suppress_simplecov!: () -> void
357
457
  def subprocess_env: () -> Hash[String, String]
358
458
  def cleanup_suite_process: (Integer?, untyped) -> void
359
459
  def spec_files: () -> Array[String]
@@ -367,15 +467,21 @@ module Henitai
367
467
 
368
468
  class GitDiffAnalyzer
369
469
  def changed_files: (from: String, to: String, ?dir: String) -> Array[String]
470
+ def working_tree_changed_files: (?dir: String) -> Array[String]
471
+ def head_sha: (?dir: String) -> String?
370
472
  end
371
473
 
372
474
  class MutantGenerator
373
475
  def generate: (Array[Subject], Array[untyped], ?config: untyped) -> Array[Mutant]
374
476
  end
375
477
 
478
+ module MutantIdentity
479
+ def self.stable_id: (Mutant) -> String
480
+ end
481
+
376
482
  class MutantHistoryStore
377
483
  def initialize: (path: String) -> void
378
- def record: (Result, version: String, ?recorded_at: Time) -> void
484
+ def record: (untyped, version: String, ?recorded_at: Time) -> void
379
485
  def trend_report: () -> Hash[Symbol, untyped]
380
486
  end
381
487
 
@@ -415,6 +521,16 @@ module Henitai
415
521
  def run: (Array[Mutant], untyped, untyped, untyped, ?Hash[Symbol, untyped]) -> void
416
522
  end
417
523
 
524
+ class ProcessWorkerRunner
525
+ SCHEDULER_POLL_INTERVAL: Float
526
+ PROCESS_DRAIN_WINDOW: Float
527
+
528
+ Slot: untyped
529
+
530
+ def initialize: (worker_count: Integer) -> void
531
+ def run: (Array[Mutant], untyped, untyped, untyped?, ?Hash[Symbol, untyped]) -> Array[ScenarioExecutionResult]
532
+ end
533
+
418
534
  class StaticFilter
419
535
  def initialize: (?coverage_report_reader: CoverageReportReader) -> void
420
536
  def apply: (Array[Mutant], untyped) -> Array[Mutant]
@@ -436,9 +552,7 @@ module Henitai
436
552
  def parallel_execution?: (untyped, Array[Mutant]) -> bool
437
553
  def worker_count: (untyped) -> Integer
438
554
  def run_linear: (Array[Mutant], untyped, untyped, untyped?, untyped) -> void
439
- def run_parallel: (Array[Mutant], untyped, untyped, untyped?, untyped) -> void
440
- def pipe_stdin?: () -> bool
441
- def start_stdin_watcher: () { () -> void } -> Thread
555
+ def run_parallel: (Array[Mutant], untyped, untyped, untyped?) -> void
442
556
  def process_mutant: (Mutant, untyped, untyped, untyped?, ?untyped) -> void
443
557
  def prioritized_tests_for: (Mutant, untyped, untyped) -> Array[String]
444
558
  def test_prioritizer: () -> TestPrioritizer
@@ -452,6 +566,7 @@ module Henitai
452
566
  SERIALIZER_METHODS: Hash[Symbol, Symbol]
453
567
 
454
568
  def self.activate!: (untyped) -> Symbol?
569
+ def self.activation_source_for: (Mutant) -> String?
455
570
  def initialize: () -> void
456
571
  def activate!: (untyped) -> Symbol?
457
572
 
@@ -507,7 +622,10 @@ module Henitai
507
622
  private
508
623
 
509
624
  def report_lines: (Result) -> Array[String]
510
- def summary_lines: (Result) -> Array[String]
625
+ def summary_lines: (untyped) -> Array[String]
626
+ def full_summary_lines: (untyped) -> Array[String]
627
+ def partial_summary_lines: (untyped) -> Array[String]
628
+ def append_survivor_stats: (Array[String], untyped) -> void
511
629
  def survived_detail_lines: (Result) -> Array[String]
512
630
  def survived_mutant_lines: (Mutant) -> Array[String]
513
631
  def survived_mutant_header: (Mutant) -> String
@@ -531,6 +649,13 @@ module Henitai
531
649
 
532
650
  private
533
651
 
652
+ def write_canonical: (Hash[Symbol, untyped]) -> void
653
+ def write_session_snapshot: (Hash[Symbol, untyped]) -> void
654
+ def write_activation_recipes: (untyped) -> void
655
+ def survived_mutants_for: (untyped) -> Array[Mutant]
656
+ def session_snapshot_path: (String) -> String
657
+ def session_recipe_path: (String) -> String
658
+ def canonical_path: () -> String
534
659
  def report_path: () -> String
535
660
  def write_history_report: () -> void
536
661
  def history_store_path: () -> String
@@ -590,8 +715,12 @@ module Henitai
590
715
  attr_reader started_at: Time
591
716
  attr_reader finished_at: Time
592
717
  attr_reader thresholds: Hash[Symbol, Integer]
718
+ attr_reader survivor_stats: Hash[Symbol, untyped]?
719
+ attr_reader session_id: String
720
+ attr_reader git_sha: String?
593
721
 
594
- def initialize: (mutants: Array[Mutant], started_at: Time, finished_at: Time, ?thresholds: Hash[Symbol, Integer]?) -> void
722
+ def initialize: (mutants: Array[Mutant], started_at: Time, finished_at: Time, ?thresholds: Hash[Symbol, Integer]?, ?partial_rerun: bool, ?survivor_stats: Hash[Symbol, untyped]?, ?session_id: String, ?git_sha: String?) -> void
723
+ def partial_rerun?: () -> bool
595
724
  def killed: () -> Integer
596
725
  def survived: () -> Integer
597
726
  def equivalent: () -> Integer
@@ -604,6 +733,8 @@ module Henitai
604
733
 
605
734
  private
606
735
 
736
+ def base_schema: () -> Hash[Symbol, untyped]
737
+ def unmatched_survivor_ids: () -> Array[String]
607
738
  def build_files_section: () -> Hash[Symbol, untyped]
608
739
  def mutant_to_schema: (Mutant) -> Hash[Symbol, untyped]
609
740
  def coverage_schema: (Mutant) -> Hash[Symbol, untyped]
@@ -615,11 +746,56 @@ module Henitai
615
746
  def stryker_status: (Symbol) -> String
616
747
  end
617
748
 
749
+ class SurvivorLoader
750
+ FileNotFoundError: singleton(StandardError)
751
+ InvalidReportError: singleton(StandardError)
752
+ ScopeMismatchError: singleton(StandardError)
753
+
754
+ class Report
755
+ attr_reader survivor_ids: Array[String]
756
+ attr_reader coverage_map: Hash[String, Array[String]]
757
+ attr_reader git_sha: String?
758
+
759
+ def initialize: (survivor_ids: Array[String], coverage_map: Hash[String, Array[String]], git_sha: String?) -> void
760
+ end
761
+
762
+ def initialize: (String, ?include_paths: Array[String]) -> void
763
+ def load: () -> Report
764
+ end
765
+
766
+ class SurvivorTestFilter
767
+ def initialize: (
768
+ coverage_map: Hash[String, Array[String]],
769
+ git_sha: String?,
770
+ ?dirty_source_files: bool,
771
+ ?worktree_changed_files: Array[String],
772
+ ?diff_analyzer: GitDiffAnalyzer
773
+ ) -> void
774
+ def apply: (Array[Mutant]) -> Hash[Symbol, Array[Mutant]]
775
+ end
776
+
777
+ class SurvivorSelector
778
+ DRIFT_THRESHOLD: Float
779
+
780
+ def initialize: (survivor_ids: Array[String]) -> void
781
+ def select: (Array[Mutant]) -> Array[Mutant]
782
+ def unmatched_ids: () -> Array[String]
783
+ def drift_warning?: () -> bool
784
+ end
785
+
786
+ class SurvivorActivationCache
787
+ FILENAME: String
788
+
789
+ def self.compute: (Array[Mutant]) -> Hash[String, Hash[String, untyped]]
790
+ def self.load: (String) -> Hash[String, Hash[String, untyped]]?
791
+ def self.write: (String, Hash[String, Hash[String, untyped]]) -> void
792
+ end
793
+
618
794
  class Runner
619
795
  attr_reader config: Configuration
620
796
  attr_reader result: untyped
621
797
 
622
- def initialize: (?config: Configuration, ?subjects: Array[Subject], ?since: String) -> void
798
+ def initialize: (?config: Configuration, ?subjects: Array[Subject], ?since: String, ?survivors_from: String?) -> void
623
799
  def run: () -> Result
624
800
  def resolve_subjects: (?Array[String]) -> untyped
625
801
  def generate_mutants: (untyped) -> untyped
@@ -651,6 +827,26 @@ module Henitai
651
827
  def mutants_for: (Array[Subject], Array[String]) -> Array[Mutant]
652
828
  def with_reports_dir: () { () -> untyped } -> untyped
653
829
  def result_thresholds: () -> Hash[Symbol, Integer]?
830
+ def survivor_rerun?: () -> bool
831
+ def apply_survivor_selection: (Array[Mutant]) -> Array[Mutant]
832
+ def try_recipe_run: () -> Array[Mutant]?
833
+ def load_survivor_report: () -> SurvivorLoader::Report
834
+ def run_from_recipes: (SurvivorLoader::Report, Array[String]?) -> Array[Mutant]?
835
+ def recipe_fast_path_safe?: (SurvivorLoader::Report, Array[String]?) -> bool
836
+ def recipe_selector_and_stubs: (Array[String], Hash[String, Hash[String, untyped]]) -> [SurvivorSelector, Array[Mutant]]
837
+ def load_activation_recipes: (Array[String]) -> Hash[String, Hash[String, untyped]]?
838
+ def build_stub_mutant: (String, Hash[String, untyped]) -> Mutant
839
+ def stub_subject_from_recipe: (Hash[String, untyped]) -> Subject
840
+ def recipe_location: (Hash[String, untyped]?) -> Hash[Symbol, untyped]
841
+ def finalize_survivor_split: (SurvivorSelector, Array[Mutant], Hash[Symbol, Array[Mutant]]) -> Array[Mutant]
842
+ def dirty_worktree_changed_files: () -> Array[String]?
843
+ def dirty_source_files?: (Array[String]?, ?git_sha: String?) -> bool
844
+ def committed_changed_files: (String?) -> Array[String]
845
+ def in_include_root?: (String, Array[String]) -> bool
846
+ def warn_survivor_drift: (SurvivorSelector) -> void
847
+ def build_survivor_stats: (SurvivorSelector, Array[Mutant], Hash[Symbol, Array[Mutant]]) -> Hash[Symbol, untyped]
848
+ def test_filter: (SurvivorLoader::Report, ?dirty_source_files: bool) -> SurvivorTestFilter
849
+ def safe_head_sha: () -> String?
654
850
  end
655
851
 
656
852
  class CoverageBootstrapper
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.8
4
+ version: 0.2.0
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
@@ -108,6 +122,7 @@ files:
108
122
  - lib/henitai/mutant/activator.rb
109
123
  - lib/henitai/mutant_generator.rb
110
124
  - lib/henitai/mutant_history_store.rb
125
+ - lib/henitai/mutant_identity.rb
111
126
  - lib/henitai/operator.rb
112
127
  - lib/henitai/operators.rb
113
128
  - lib/henitai/operators/arithmetic_operator.rb
@@ -133,6 +148,8 @@ files:
133
148
  - lib/henitai/parser_current.rb
134
149
  - lib/henitai/per_test_coverage_collector.rb
135
150
  - lib/henitai/per_test_coverage_selector.rb
151
+ - lib/henitai/process_wakeup.rb
152
+ - lib/henitai/process_worker_runner.rb
136
153
  - lib/henitai/reporter.rb
137
154
  - lib/henitai/result.rb
138
155
  - lib/henitai/rspec_coverage_formatter.rb
@@ -144,6 +161,10 @@ files:
144
161
  - lib/henitai/stillborn_filter.rb
145
162
  - lib/henitai/subject.rb
146
163
  - lib/henitai/subject_resolver.rb
164
+ - lib/henitai/survivor_activation_cache.rb
165
+ - lib/henitai/survivor_loader.rb
166
+ - lib/henitai/survivor_selector.rb
167
+ - lib/henitai/survivor_test_filter.rb
147
168
  - lib/henitai/syntax_validator.rb
148
169
  - lib/henitai/test_prioritizer.rb
149
170
  - lib/henitai/unparse_helper.rb
@@ -160,7 +181,7 @@ metadata:
160
181
  changelog_uri: https://github.com/martinotten/henitai/blob/main/CHANGELOG.md
161
182
  documentation_uri: https://github.com/martinotten/henitai/blob/main/README.md
162
183
  homepage_uri: https://github.com/martinotten/henitai
163
- source_code_uri: https://github.com/martinotten/henitai/tree/v0.1.8
184
+ source_code_uri: https://github.com/martinotten/henitai/tree/v0.1.10
164
185
  rubygems_mfa_required: 'true'
165
186
  rdoc_options: []
166
187
  require_paths: