Chromium Code Reviews| Index: base/process/process_unittest.cc |
| diff --git a/base/process/process_unittest.cc b/base/process/process_unittest.cc |
| index 90bb95a0fe9b04964cedb716629bb42e3058741f..9558efce0d96530ae4ec8ce1289fba0107d8c1af 100644 |
| --- a/base/process/process_unittest.cc |
| +++ b/base/process/process_unittest.cc |
| @@ -148,6 +148,30 @@ TEST_F(ProcessTest, Terminate) { |
| #endif |
| } |
| +TEST_F(ProcessTest, TerminateCurrentProcessImmediately) { |
| + Process process(SpawnChild("SleepyChildProcess")); |
| + ASSERT_TRUE(process.IsValid()); |
| + |
| + const int kDummyExitCode = 42; |
| + int exit_code = kDummyExitCode; |
| + EXPECT_EQ(TERMINATION_STATUS_STILL_RUNNING, |
| + GetTerminationStatus(process.Handle(), &exit_code)); |
| + EXPECT_EQ(kExpectedStillRunningExitCode, exit_code); |
| + |
| + exit_code = kDummyExitCode; |
| + int kExpectedExitCode = 250; |
| + process.TerminateCurrentProcessImmediately(kExpectedExitCode); |
|
Primiano Tucci (use gerrit)
2017/01/16 14:37:34
well this is the problem. You don't want to termin
|
| + process.WaitForExitWithTimeout(TestTimeouts::action_max_timeout(), |
| + &exit_code); |
| + |
| + EXPECT_NE(TERMINATION_STATUS_STILL_RUNNING, |
| + GetTerminationStatus(process.Handle(), &exit_code)); |
| +#if !defined(OS_POSIX) |
| + // The POSIX implementation actually ignores the exit_code. |
|
Primiano Tucci (use gerrit)
2017/01/16 14:37:34
Where did this happen? I tried both on OSX and Lin
|
| + EXPECT_EQ(kExpectedExitCode, exit_code); |
| +#endif |
| +} |
| + |
| MULTIPROCESS_TEST_MAIN(FastSleepyChildProcess) { |
| PlatformThread::Sleep(TestTimeouts::tiny_timeout() * 10); |
| return 0; |