class Mutest::Runner

Runner baseclass

Attributes

result[R]

Final result

@return [Result::Env]

Public Class Methods

new(*) click to toggle source

Initialize object

@return [undefined]

Calls superclass method
# File lib/mutest/runner.rb, line 11
def initialize(*)
  super

  reporter.start(env)

  run_mutation_analysis
end

Private Instance Methods

config() click to toggle source

Config for this mutest execution

@return [Config]

# File lib/mutest/runner.rb, line 80
def config
  env.config
end
mutation_test_config() click to toggle source

Configuration for parallel execution engine

@return [Parallel::Config]

# File lib/mutest/runner.rb, line 60
def mutation_test_config
  Parallel::Config.new(
    env:       env.actor_env,
    jobs:      config.jobs,
    processor: env.method(:kill),
    sink:      Sink.new(env),
    source:    Parallel::Source::Array.new(env.mutations)
  )
end
reporter() click to toggle source

Reporter to use

@return [Reporter]

# File lib/mutest/runner.rb, line 73
def reporter
  env.config.reporter
end
run_driver(driver) click to toggle source

Run driver

@param [Driver] driver

@return [Object]

the last returned status payload
# File lib/mutest/runner.rb, line 40
def run_driver(driver)
  status = nil
  sleep  = env.config.kernel.method(:sleep)

  loop do
    status = driver.status
    reporter.progress(status)
    break if status.done

    sleep.call(reporter.delay)
  end

  driver.stop

  status.payload
end
run_mutation_analysis() click to toggle source

Run mutation analysis

@return [undefined]

# File lib/mutest/runner.rb, line 29
def run_mutation_analysis
  @result = run_driver(Parallel.async(mutation_test_config))
  reporter.report(result)
end