Class: Evilution::Isolation::InProcess

Inherits:
Object
  • Object
show all
Defined in:
lib/evilution/isolation/in_process.rb

Instance Method Summary collapse

Instance Method Details

#call(mutation:, test_command:, timeout:) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/evilution/isolation/in_process.rb', line 10

def call(mutation:, test_command:, timeout:)
  start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
  rss_before = Memory.rss_kb
  result = execute_with_timeout(mutation, test_command, timeout)
  rss_after = Memory.rss_kb
  duration = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time
  delta = compute_memory_delta(rss_before, rss_after, result)

  build_mutation_result(mutation, result, duration, rss_after, delta)
end