blob: e43c0ffbee205a73fe2a65227231f2fad382480a [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "diagnostics/cros_healthd/routines/prime_search/prime_search.h"
#include <string>
#include <vector>
#include <base/command_line.h>
#include "diagnostics/cros_healthd/routines/shared_defaults.h"
#include "diagnostics/cros_healthd/routines/subproc_routine.h"
namespace diagnostics {
namespace {
constexpr char kPrimeSearchExePath[] = "/usr/libexec/diagnostics/prime-search";
} // namespace
const uint64_t kPrimeSearchDefaultMaxNum = 1000000;
std::unique_ptr<DiagnosticRoutine> CreatePrimeSearchRoutine(
const base::Optional<base::TimeDelta>& exec_duration,
const base::Optional<uint64_t>& max_num) {
uint32_t duration_in_seconds =
exec_duration.value_or(kDefaultCpuStressRuntime).InSeconds();
return std::make_unique<SubprocRoutine>(
base::CommandLine(std::vector<std::string>{
kPrimeSearchExePath, "--time=" + std::to_string(duration_in_seconds),
"--max_num=" +
std::to_string(max_num.value_or(kPrimeSearchDefaultMaxNum))}),
duration_in_seconds);
} // namespace diagnostics
} // namespace diagnostics