| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/process/process.h" | 5 #include "base/process/process.h" |
| 6 | 6 |
| 7 #include "base/process/kill.h" | 7 #include "base/process/kill.h" |
| 8 #include "base/test/multiprocess_test.h" | 8 #include "base/test/multiprocess_test.h" |
| 9 #include "base/test/test_timeouts.h" | 9 #include "base/test/test_timeouts.h" |
| 10 #include "base/threading/platform_thread.h" | 10 #include "base/threading/platform_thread.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 EXPECT_FALSE(process3.IsValid()); | 61 EXPECT_FALSE(process3.IsValid()); |
| 62 } | 62 } |
| 63 | 63 |
| 64 TEST_F(ProcessTest, Duplicate) { | 64 TEST_F(ProcessTest, Duplicate) { |
| 65 Process process1(SpawnChild("SimpleChildProcess")); | 65 Process process1(SpawnChild("SimpleChildProcess")); |
| 66 ASSERT_TRUE(process1.IsValid()); | 66 ASSERT_TRUE(process1.IsValid()); |
| 67 | 67 |
| 68 Process process2 = process1.Duplicate(); | 68 Process process2 = process1.Duplicate(); |
| 69 ASSERT_TRUE(process1.IsValid()); | 69 ASSERT_TRUE(process1.IsValid()); |
| 70 ASSERT_TRUE(process2.IsValid()); | 70 ASSERT_TRUE(process2.IsValid()); |
| 71 EXPECT_EQ(process1.pid(), process2.pid()); | 71 EXPECT_EQ(process1.Pid(), process2.Pid()); |
| 72 EXPECT_FALSE(process1.is_current()); | 72 EXPECT_FALSE(process1.is_current()); |
| 73 EXPECT_FALSE(process2.is_current()); | 73 EXPECT_FALSE(process2.is_current()); |
| 74 | 74 |
| 75 process1.Close(); | 75 process1.Close(); |
| 76 ASSERT_TRUE(process2.IsValid()); | 76 ASSERT_TRUE(process2.IsValid()); |
| 77 } | 77 } |
| 78 | 78 |
| 79 TEST_F(ProcessTest, DuplicateCurrent) { | 79 TEST_F(ProcessTest, DuplicateCurrent) { |
| 80 Process process1 = Process::Current(); | 80 Process process1 = Process::Current(); |
| 81 ASSERT_TRUE(process1.IsValid()); | 81 ASSERT_TRUE(process1.IsValid()); |
| 82 | 82 |
| 83 Process process2 = process1.Duplicate(); | 83 Process process2 = process1.Duplicate(); |
| 84 ASSERT_TRUE(process1.IsValid()); | 84 ASSERT_TRUE(process1.IsValid()); |
| 85 ASSERT_TRUE(process2.IsValid()); | 85 ASSERT_TRUE(process2.IsValid()); |
| 86 EXPECT_EQ(process1.pid(), process2.pid()); | 86 EXPECT_EQ(process1.Pid(), process2.Pid()); |
| 87 EXPECT_TRUE(process1.is_current()); | 87 EXPECT_TRUE(process1.is_current()); |
| 88 EXPECT_TRUE(process2.is_current()); | 88 EXPECT_TRUE(process2.is_current()); |
| 89 | 89 |
| 90 process1.Close(); | 90 process1.Close(); |
| 91 ASSERT_TRUE(process2.IsValid()); | 91 ASSERT_TRUE(process2.IsValid()); |
| 92 } | 92 } |
| 93 | 93 |
| 94 TEST_F(ProcessTest, DeprecatedGetProcessFromHandle) { | 94 TEST_F(ProcessTest, DeprecatedGetProcessFromHandle) { |
| 95 Process process1(SpawnChild("SimpleChildProcess")); | 95 Process process1(SpawnChild("SimpleChildProcess")); |
| 96 ASSERT_TRUE(process1.IsValid()); | 96 ASSERT_TRUE(process1.IsValid()); |
| 97 | 97 |
| 98 Process process2 = Process::DeprecatedGetProcessFromHandle(process1.Handle()); | 98 Process process2 = Process::DeprecatedGetProcessFromHandle(process1.Handle()); |
| 99 ASSERT_TRUE(process1.IsValid()); | 99 ASSERT_TRUE(process1.IsValid()); |
| 100 ASSERT_TRUE(process2.IsValid()); | 100 ASSERT_TRUE(process2.IsValid()); |
| 101 EXPECT_EQ(process1.pid(), process2.pid()); | 101 EXPECT_EQ(process1.Pid(), process2.Pid()); |
| 102 EXPECT_FALSE(process1.is_current()); | 102 EXPECT_FALSE(process1.is_current()); |
| 103 EXPECT_FALSE(process2.is_current()); | 103 EXPECT_FALSE(process2.is_current()); |
| 104 | 104 |
| 105 process1.Close(); | 105 process1.Close(); |
| 106 ASSERT_TRUE(process2.IsValid()); | 106 ASSERT_TRUE(process2.IsValid()); |
| 107 } | 107 } |
| 108 | 108 |
| 109 MULTIPROCESS_TEST_MAIN(SleepyChildProcess) { | 109 MULTIPROCESS_TEST_MAIN(SleepyChildProcess) { |
| 110 PlatformThread::Sleep(TestTimeouts::action_max_timeout()); | 110 PlatformThread::Sleep(TestTimeouts::action_max_timeout()); |
| 111 return 0; | 111 return 0; |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 EXPECT_FALSE(process.IsProcessBackgrounded()); | 194 EXPECT_FALSE(process.IsProcessBackgrounded()); |
| 195 #else | 195 #else |
| 196 process.SetProcessBackgrounded(true); | 196 process.SetProcessBackgrounded(true); |
| 197 process.SetProcessBackgrounded(false); | 197 process.SetProcessBackgrounded(false); |
| 198 #endif | 198 #endif |
| 199 int new_priority = process.GetPriority(); | 199 int new_priority = process.GetPriority(); |
| 200 EXPECT_EQ(old_priority, new_priority); | 200 EXPECT_EQ(old_priority, new_priority); |
| 201 } | 201 } |
| 202 | 202 |
| 203 } // namespace base | 203 } // namespace base |
| OLD | NEW |