summaryrefslogtreecommitdiffstats
path: root/base/test
diff options
context:
space:
mode:
Diffstat (limited to 'base/test')
-rw-r--r--base/test/multiprocess_test.cc32
-rw-r--r--base/test/multiprocess_test.h16
2 files changed, 16 insertions, 32 deletions
diff --git a/base/test/multiprocess_test.cc b/base/test/multiprocess_test.cc
index a1a3bbe..c691b5f 100644
--- a/base/test/multiprocess_test.cc
+++ b/base/test/multiprocess_test.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -19,12 +19,8 @@ MultiProcessTest::MultiProcessTest() {
ProcessHandle MultiProcessTest::SpawnChild(const std::string& procname,
bool debug_on_start) {
-#if defined(OS_WIN)
- return SpawnChildImpl(procname, debug_on_start);
-#elif defined(OS_POSIX)
file_handle_mapping_vector empty_file_list;
return SpawnChildImpl(procname, empty_file_list, debug_on_start);
-#endif
}
#if defined(OS_POSIX)
@@ -45,30 +41,20 @@ CommandLine MultiProcessTest::MakeCmdLine(const std::string& procname,
return cl;
}
-#if defined(OS_WIN)
-
-ProcessHandle MultiProcessTest::SpawnChildImpl(const std::string& procname,
- bool debug_on_start) {
- ProcessHandle handle = static_cast<ProcessHandle>(NULL);
- LaunchApp(MakeCmdLine(procname, debug_on_start),
- false, true, &handle);
- return handle;
-}
-
-#elif defined(OS_POSIX)
-
-// TODO(port): with the CommandLine refactoring, this code is very similar
-// to the Windows code. Investigate whether this can be made shorter.
ProcessHandle MultiProcessTest::SpawnChildImpl(
const std::string& procname,
const file_handle_mapping_vector& fds_to_map,
bool debug_on_start) {
ProcessHandle handle = kNullProcessHandle;
- LaunchApp(MakeCmdLine(procname, debug_on_start).argv(),
- fds_to_map, false, &handle);
+ base::LaunchOptions options;
+ options.process_handle = &handle;
+#if defined(OS_WIN)
+ options.start_hidden = true;
+#else
+ options.fds_to_remap = &fds_to_map;
+#endif
+ base::LaunchProcess(MakeCmdLine(procname, debug_on_start), options);
return handle;
}
-#endif
-
} // namespace base
diff --git a/base/test/multiprocess_test.h b/base/test/multiprocess_test.h
index af7a180..bfb9e2a 100644
--- a/base/test/multiprocess_test.h
+++ b/base/test/multiprocess_test.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -58,6 +58,9 @@ class MultiProcessTest : public PlatformTest {
ProcessHandle SpawnChild(const std::string& procname, bool debug_on_start);
#if defined(OS_POSIX)
+ // TODO(evan): see if we can delete this via more refactoring.
+ // SpawnChild() should just take a base::LaunchOptions so that we don't
+ // need multiple versions of it.
ProcessHandle SpawnChild(const std::string& procname,
const file_handle_mapping_vector& fds_to_map,
bool debug_on_start);
@@ -68,17 +71,12 @@ class MultiProcessTest : public PlatformTest {
bool debug_on_start);
private:
-#if defined(OS_WIN)
- ProcessHandle SpawnChildImpl(const std::string& procname,
- bool debug_on_start);
-
-#elif defined(OS_POSIX)
- // TODO(port): with the CommandLine refactoring, this code is very similar
- // to the Windows code. Investigate whether this can be made shorter.
+ // Shared implementation of SpawnChild.
+ // TODO: |fds_to_map| is unused on Windows; see above TODO about
+ // further refactoring.
ProcessHandle SpawnChildImpl(const std::string& procname,
const file_handle_mapping_vector& fds_to_map,
bool debug_on_start);
-#endif
DISALLOW_COPY_AND_ASSIGN(MultiProcessTest);
};