Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1279)

Unified Diff: base/process/process_util_unittest.cc

Issue 843113003: MultiProcessTest: Update SpawnChild* to return a Process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/metrics/stats_table_unittest.cc ('k') | base/test/multiprocess_test.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/process/process_util_unittest.cc
diff --git a/base/process/process_util_unittest.cc b/base/process/process_util_unittest.cc
index af88fe1fd3a01f2ce3c10427e77b26645ba6eda8..80e103d54028a295406127b6a898b86d26c274fc 100644
--- a/base/process/process_util_unittest.cc
+++ b/base/process/process_util_unittest.cc
@@ -142,11 +142,10 @@ MULTIPROCESS_TEST_MAIN(SimpleChildProcess) {
// TODO(viettrungluu): This should be in a "MultiProcessTestTest".
TEST_F(ProcessUtilTest, SpawnChild) {
- base::ProcessHandle handle = SpawnChild("SimpleChildProcess");
- ASSERT_NE(base::kNullProcessHandle, handle);
- EXPECT_TRUE(base::WaitForSingleProcess(
- handle, TestTimeouts::action_max_timeout()));
- base::CloseProcessHandle(handle);
+ base::Process process = SpawnChild("SimpleChildProcess");
+ ASSERT_TRUE(process.IsValid());
+ EXPECT_TRUE(base::WaitForSingleProcess(process.Handle(),
+ TestTimeouts::action_max_timeout()));
}
MULTIPROCESS_TEST_MAIN(SlowChildProcess) {
@@ -158,12 +157,11 @@ TEST_F(ProcessUtilTest, KillSlowChild) {
const std::string signal_file =
ProcessUtilTest::GetSignalFilePath(kSignalFileSlow);
remove(signal_file.c_str());
- base::ProcessHandle handle = SpawnChild("SlowChildProcess");
- ASSERT_NE(base::kNullProcessHandle, handle);
+ base::Process process = SpawnChild("SlowChildProcess");
+ ASSERT_TRUE(process.IsValid());
SignalChildren(signal_file.c_str());
- EXPECT_TRUE(base::WaitForSingleProcess(
- handle, TestTimeouts::action_max_timeout()));
- base::CloseProcessHandle(handle);
+ EXPECT_TRUE(base::WaitForSingleProcess(process.Handle(),
+ TestTimeouts::action_max_timeout()));
remove(signal_file.c_str());
}
@@ -172,21 +170,20 @@ TEST_F(ProcessUtilTest, DISABLED_GetTerminationStatusExit) {
const std::string signal_file =
ProcessUtilTest::GetSignalFilePath(kSignalFileSlow);
remove(signal_file.c_str());
- base::ProcessHandle handle = SpawnChild("SlowChildProcess");
- ASSERT_NE(base::kNullProcessHandle, handle);
+ base::Process process = SpawnChild("SlowChildProcess");
+ ASSERT_TRUE(process.IsValid());
int exit_code = 42;
EXPECT_EQ(base::TERMINATION_STATUS_STILL_RUNNING,
- base::GetTerminationStatus(handle, &exit_code));
+ base::GetTerminationStatus(process.Handle(), &exit_code));
EXPECT_EQ(kExpectedStillRunningExitCode, exit_code);
SignalChildren(signal_file.c_str());
exit_code = 42;
base::TerminationStatus status =
- WaitForChildTermination(handle, &exit_code);
+ WaitForChildTermination(process.Handle(), &exit_code);
EXPECT_EQ(base::TERMINATION_STATUS_NORMAL_TERMINATION, status);
EXPECT_EQ(0, exit_code);
- base::CloseProcessHandle(handle);
remove(signal_file.c_str());
}
@@ -195,12 +192,11 @@ TEST_F(ProcessUtilTest, DISABLED_GetTerminationStatusExit) {
TEST_F(ProcessUtilTest, GetProcId) {
base::ProcessId id1 = base::GetProcId(GetCurrentProcess());
EXPECT_NE(0ul, id1);
- base::ProcessHandle handle = SpawnChild("SimpleChildProcess");
- ASSERT_NE(base::kNullProcessHandle, handle);
- base::ProcessId id2 = base::GetProcId(handle);
+ base::Process process = SpawnChild("SimpleChildProcess");
+ ASSERT_TRUE(process.IsValid());
+ base::ProcessId id2 = process.pid();
EXPECT_NE(0ul, id2);
EXPECT_NE(id1, id2);
- base::CloseProcessHandle(handle);
}
#endif
@@ -239,18 +235,18 @@ TEST_F(ProcessUtilTest, MAYBE_GetTerminationStatusCrash) {
const std::string signal_file =
ProcessUtilTest::GetSignalFilePath(kSignalFileCrash);
remove(signal_file.c_str());
- base::ProcessHandle handle = SpawnChild("CrashingChildProcess");
- ASSERT_NE(base::kNullProcessHandle, handle);
+ base::Process process = SpawnChild("CrashingChildProcess");
+ ASSERT_TRUE(process.IsValid());
int exit_code = 42;
EXPECT_EQ(base::TERMINATION_STATUS_STILL_RUNNING,
- base::GetTerminationStatus(handle, &exit_code));
+ base::GetTerminationStatus(process.Handle(), &exit_code));
EXPECT_EQ(kExpectedStillRunningExitCode, exit_code);
SignalChildren(signal_file.c_str());
exit_code = 42;
base::TerminationStatus status =
- WaitForChildTermination(handle, &exit_code);
+ WaitForChildTermination(process.Handle(), &exit_code);
EXPECT_EQ(base::TERMINATION_STATUS_PROCESS_CRASHED, status);
#if defined(OS_WIN)
@@ -261,7 +257,6 @@ TEST_F(ProcessUtilTest, MAYBE_GetTerminationStatusCrash) {
int signal = WTERMSIG(exit_code);
EXPECT_EQ(SIGSEGV, signal);
#endif
- base::CloseProcessHandle(handle);
// Reset signal handlers back to "normal".
base::debug::EnableInProcessStackDumping();
@@ -286,18 +281,18 @@ TEST_F(ProcessUtilTest, GetTerminationStatusKill) {
const std::string signal_file =
ProcessUtilTest::GetSignalFilePath(kSignalFileKill);
remove(signal_file.c_str());
- base::ProcessHandle handle = SpawnChild("KilledChildProcess");
- ASSERT_NE(base::kNullProcessHandle, handle);
+ base::Process process = SpawnChild("KilledChildProcess");
+ ASSERT_TRUE(process.IsValid());
int exit_code = 42;
EXPECT_EQ(base::TERMINATION_STATUS_STILL_RUNNING,
- base::GetTerminationStatus(handle, &exit_code));
+ base::GetTerminationStatus(process.Handle(), &exit_code));
EXPECT_EQ(kExpectedStillRunningExitCode, exit_code);
SignalChildren(signal_file.c_str());
exit_code = 42;
base::TerminationStatus status =
- WaitForChildTermination(handle, &exit_code);
+ WaitForChildTermination(process.Handle(), &exit_code);
EXPECT_EQ(base::TERMINATION_STATUS_PROCESS_WAS_KILLED, status);
#if defined(OS_WIN)
EXPECT_EQ(kExpectedKilledExitCode, exit_code);
@@ -307,7 +302,6 @@ TEST_F(ProcessUtilTest, GetTerminationStatusKill) {
int signal = WTERMSIG(exit_code);
EXPECT_EQ(SIGKILL, signal);
#endif
- base::CloseProcessHandle(handle);
remove(signal_file.c_str());
}
@@ -535,9 +529,9 @@ int ProcessUtilTest::CountOpenFDsInChild() {
fd_mapping_vec.push_back(std::pair<int, int>(fds[1], kChildPipe));
base::LaunchOptions options;
options.fds_to_remap = &fd_mapping_vec;
- base::ProcessHandle handle =
+ base::Process process =
SpawnChildWithOptions("ProcessUtilsLeakFDChildProcess", options);
- CHECK(handle);
+ CHECK(process.IsValid());
int ret = IGNORE_EINTR(close(fds[1]));
DPCHECK(ret == 0);
@@ -549,11 +543,12 @@ int ProcessUtilTest::CountOpenFDsInChild() {
#if defined(THREAD_SANITIZER)
// Compiler-based ThreadSanitizer makes this test slow.
- CHECK(base::WaitForSingleProcess(handle, base::TimeDelta::FromSeconds(3)));
+ CHECK(base::WaitForSingleProcess(process.Handle(),
+ base::TimeDelta::FromSeconds(3)));
#else
- CHECK(base::WaitForSingleProcess(handle, base::TimeDelta::FromSeconds(1)));
+ CHECK(base::WaitForSingleProcess(process.Handle(),
+ base::TimeDelta::FromSeconds(1)));
#endif
- base::CloseProcessHandle(handle);
ret = IGNORE_EINTR(close(fds[0]));
DPCHECK(ret == 0);
@@ -888,7 +883,7 @@ bool IsProcessDead(base::ProcessHandle child) {
}
TEST_F(ProcessUtilTest, DelayedTermination) {
- base::Process child_process(SpawnChild("process_util_test_never_die"));
+ base::Process child_process = SpawnChild("process_util_test_never_die");
ASSERT_TRUE(child_process.IsValid());
base::EnsureProcessTerminated(child_process.Duplicate());
base::WaitForSingleProcess(child_process.Handle(),
@@ -906,7 +901,7 @@ MULTIPROCESS_TEST_MAIN(process_util_test_never_die) {
}
TEST_F(ProcessUtilTest, ImmediateTermination) {
- base::Process child_process(SpawnChild("process_util_test_die_immediately"));
+ base::Process child_process = SpawnChild("process_util_test_die_immediately");
ASSERT_TRUE(child_process.IsValid());
// Give it time to die.
sleep(2);
« no previous file with comments | « base/metrics/stats_table_unittest.cc ('k') | base/test/multiprocess_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698