class BenchmarkDriver::Runner::CommandStdout

def run(jobs)

Parameters:
  • jobs (Array) --
def run(jobs)
  metric = jobs.first.metrics.first
  @output.with_benchmark do
    jobs.each do |job|
      @output.with_job(name: job.name) do
        @contexts.each do |context|
          exec = context.executable
          result = BenchmarkDriver::Repeater.with_repeat(config: @config, larger_better: metric.larger_better) do
            stdout = with_chdir(job.working_directory) do
              with_ruby_prefix(exec) { execute(*exec.command, *job.command) }
            end
            StdoutToMetrics.new(
              stdout: stdout,
              stdout_to_metrics: job.stdout_to_metrics,
            ).metrics_value
          end
          @output.with_context(name: exec.name, executable: exec) do
            @output.report(values: { metric => result.value }, all_values: { metric => result.all_values })
          end
        end
      end
    end
  end
end