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; |