chromium/chrome/updater/win/test/test_executables.h

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_UPDATER_WIN_TEST_TEST_EXECUTABLES_H_
#define CHROME_UPDATER_WIN_TEST_TEST_EXECUTABLES_H_

#include "base/process/process.h"
#include "chrome/updater/updater_scope.h"

namespace base {
class CommandLine;
}  // namespace base

namespace updater {

// The name of the executable used for tests.
extern const wchar_t kTestProcessExecutableName[];

// Creates a process that will run for a minute, which is long enough to be
// killed by a reasonably fast unit or integration test.
// Populates |command_line| with the used command line if it is not nullptr.
base::Process LongRunningProcess(UpdaterScope scope,
                                 const std::string& test_name,
                                 base::CommandLine* command_line);

// Gets the command line for `kTestServiceExecutableName` in the same directory
// as the current process.
base::CommandLine GetTestProcessCommandLine(UpdaterScope scope,
                                            const std::string& test_name);

}  // namespace updater

#endif  // CHROME_UPDATER_WIN_TEST_TEST_EXECUTABLES_H_