Class: Henitai::ExecutionEngine

Inherits:
Object
  • Object
show all
Defined in:
lib/henitai/execution_engine.rb

Overview

Runs pending mutants through the selected integration.

Instance Method Summary collapse

Instance Method Details

#run(mutants, integration, config, progress_reporter: nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/henitai/execution_engine.rb', line 8

def run(mutants, integration, config, progress_reporter: nil)
  with_reports_dir(config) do
    with_coverage_dir(config) do
      @flaky_retry_count = 0
      pending_mutants = Array(mutants).select(&:pending?)
      mutex = Mutex.new
      if parallel_execution?(config, pending_mutants)
        run_parallel(pending_mutants, integration, config, progress_reporter)
      else
        run_linear(pending_mutants, integration, config, progress_reporter, mutex)
      end

      warn_flaky_mutants(pending_mutants.size)
      mutants
    end
  end
end