| Index: base/process/process_unittest.cc
|
| diff --git a/base/process/process_unittest.cc b/base/process/process_unittest.cc
|
| index ba8e4e6f68820c0827a463c63d0022e588a689bb..e094c032f3bb07e4e7530ac3276e2e77726629e0 100644
|
| --- a/base/process/process_unittest.cc
|
| +++ b/base/process/process_unittest.cc
|
| @@ -11,6 +11,10 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "testing/multiprocess_func_list.h"
|
|
|
| +#if defined(OS_MACOSX)
|
| +#include <mach/mach.h>
|
| +#endif // OS_MACOSX
|
| +
|
| namespace {
|
|
|
| #if defined(OS_WIN)
|
| @@ -170,7 +174,19 @@ TEST_F(ProcessTest, WaitForExitWithTimeout) {
|
| TEST_F(ProcessTest, SetProcessBackgrounded) {
|
| Process process(SpawnChild("SimpleChildProcess"));
|
| int old_priority = process.GetPriority();
|
| -#if defined(OS_WIN)
|
| +#if defined(OS_MACOSX)
|
| + // On the Mac, backgrounding a process requires a port to that process.
|
| + // In the browser it's available through the MachBroker class, which is not
|
| + // part of base. Additionally, there is an indefinite amount of time between
|
| + // spawning a process and receiving its port. Because this test just checks
|
| + // the ability to background/foreground a process, we can use the current
|
| + // process's port instead.
|
| + mach_port_t process_port = mach_task_self();
|
| + EXPECT_TRUE(process.SetProcessBackgrounded(process_port, true));
|
| + EXPECT_TRUE(process.IsProcessBackgrounded(process_port));
|
| + EXPECT_TRUE(process.SetProcessBackgrounded(process_port, false));
|
| + EXPECT_FALSE(process.IsProcessBackgrounded(process_port));
|
| +#elif defined(OS_WIN)
|
| EXPECT_TRUE(process.SetProcessBackgrounded(true));
|
| EXPECT_TRUE(process.IsProcessBackgrounded());
|
| EXPECT_TRUE(process.SetProcessBackgrounded(false));
|
| @@ -188,7 +204,13 @@ TEST_F(ProcessTest, SetProcessBackgrounded) {
|
| TEST_F(ProcessTest, SetProcessBackgroundedSelf) {
|
| Process process = Process::Current();
|
| int old_priority = process.GetPriority();
|
| -#if defined(OS_WIN)
|
| +#if defined(OS_MACOSX)
|
| + mach_port_t process_port = mach_task_self();
|
| + EXPECT_TRUE(process.SetProcessBackgrounded(process_port, true));
|
| + EXPECT_TRUE(process.IsProcessBackgrounded(process_port));
|
| + EXPECT_TRUE(process.SetProcessBackgrounded(process_port, false));
|
| + EXPECT_FALSE(process.IsProcessBackgrounded(process_port));
|
| +#elif defined(OS_WIN)
|
| EXPECT_TRUE(process.SetProcessBackgrounded(true));
|
| EXPECT_TRUE(process.IsProcessBackgrounded());
|
| EXPECT_TRUE(process.SetProcessBackgrounded(false));
|
|
|