class ParallelTests::Test::Runner
def execute_command_and_capture_output(env, cmd, options)
def execute_command_and_capture_output(env, cmd, options) pid = nil popen_options = {} popen_options[:err] = [:child, :out] if options[:combine_stderr] output = IO.popen(env, cmd, popen_options) do |io| pid = io.pid ParallelTests.pids.add(pid) capture_output(io, env, options) end ParallelTests.pids.delete(pid) if pid exitstatus = $?.exitstatus seed = output[/seed (\d+)/, 1] output = "#{Shellwords.shelljoin(cmd)}\n#{output}" if report_process_command?(options) && options[:serialize_stdout] { env: env, stdout: output, exit_status: exitstatus, command: cmd, seed: seed } end