Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / base / test / multiprocess_test.cc
blob2cd6d8ca0331ffac1c80c3faab3d40f85d58a574
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/test/multiprocess_test.h"
7 #include "base/base_switches.h"
8 #include "base/command_line.h"
9 #include "base/files/file_path.h"
10 #include "base/files/file_util.h"
12 namespace base {
14 #if !defined(OS_ANDROID)
15 Process SpawnMultiProcessTestChild(
16 const std::string& procname,
17 const CommandLine& base_command_line,
18 const LaunchOptions& options) {
19 CommandLine command_line(base_command_line);
20 // TODO(viettrungluu): See comment above |MakeCmdLine()| in the header file.
21 // This is a temporary hack, since |MakeCmdLine()| has to provide a full
22 // command line.
23 if (!command_line.HasSwitch(switches::kTestChildProcess))
24 command_line.AppendSwitchASCII(switches::kTestChildProcess, procname);
26 return LaunchProcess(command_line, options);
28 #endif // !defined(OS_ANDROID)
30 CommandLine GetMultiProcessTestChildBaseCommandLine() {
31 CommandLine cmd_line = *CommandLine::ForCurrentProcess();
32 cmd_line.SetProgram(MakeAbsoluteFilePath(cmd_line.GetProgram()));
33 return cmd_line;
36 // MultiProcessTest ------------------------------------------------------------
38 MultiProcessTest::MultiProcessTest() {
41 Process MultiProcessTest::SpawnChild(const std::string& procname) {
42 LaunchOptions options;
43 #if defined(OS_WIN)
44 options.start_hidden = true;
45 #endif
46 return SpawnChildWithOptions(procname, options);
49 Process MultiProcessTest::SpawnChildWithOptions(
50 const std::string& procname,
51 const LaunchOptions& options) {
52 return SpawnMultiProcessTestChild(procname, MakeCmdLine(procname), options);
55 CommandLine MultiProcessTest::MakeCmdLine(const std::string& procname) {
56 CommandLine command_line = GetMultiProcessTestChildBaseCommandLine();
57 command_line.AppendSwitchASCII(switches::kTestChildProcess, procname);
58 return command_line;
61 } // namespace base