diff options
author | rvargas <rvargas@chromium.org> | 2015-01-12 14:23:23 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-12 22:25:04 +0000 |
commit | 07b589c1f6c4d0aac24e270a13fa83031bf2038c (patch) | |
tree | 18a5284042b77bb6845194277e8dea006576b636 /ipc | |
parent | d44cce5915db087d726ed2e141896401edeb09b7 (diff) | |
download | chromium_src-07b589c1f6c4d0aac24e270a13fa83031bf2038c.zip chromium_src-07b589c1f6c4d0aac24e270a13fa83031bf2038c.tar.gz chromium_src-07b589c1f6c4d0aac24e270a13fa83031bf2038c.tar.bz2 |
MultiProcessTest: Update SpawnChild* to return a Process.
We should not be dealing with raw handles.
BUG=417532
Review URL: https://codereview.chromium.org/843113003
Cr-Commit-Position: refs/heads/master@{#311127}
Diffstat (limited to 'ipc')
-rw-r--r-- | ipc/ipc_channel_posix_unittest.cc | 30 | ||||
-rw-r--r-- | ipc/ipc_test_base.cc | 18 | ||||
-rw-r--r-- | ipc/ipc_test_base.h | 4 | ||||
-rw-r--r-- | ipc/mojo/ipc_channel_mojo_unittest.cc | 9 | ||||
-rw-r--r-- | ipc/mojo/ipc_mojo_bootstrap_unittest.cc | 2 | ||||
-rw-r--r-- | ipc/mojo/ipc_mojo_perftest.cc | 2 | ||||
-rw-r--r-- | ipc/sync_socket_unittest.cc | 2 |
7 files changed, 33 insertions, 34 deletions
diff --git a/ipc/ipc_channel_posix_unittest.cc b/ipc/ipc_channel_posix_unittest.cc index a01710c..93fc13c 100644 --- a/ipc/ipc_channel_posix_unittest.cc +++ b/ipc/ipc_channel_posix_unittest.cc @@ -293,8 +293,8 @@ TEST_F(IPCChannelPosixTest, AdvancedConnected) { ASSERT_TRUE(channel->AcceptsConnections()); ASSERT_FALSE(channel->HasAcceptedConnection()); - base::ProcessHandle handle = SpawnChild("IPCChannelPosixTestConnectionProc"); - ASSERT_TRUE(handle); + base::Process process = SpawnChild("IPCChannelPosixTestConnectionProc"); + ASSERT_TRUE(process.IsValid()); SpinRunLoop(TestTimeouts::action_max_timeout()); ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); ASSERT_TRUE(channel->HasAcceptedConnection()); @@ -304,7 +304,7 @@ TEST_F(IPCChannelPosixTest, AdvancedConnected) { channel->Send(message); SpinRunLoop(TestTimeouts::action_timeout()); int exit_code = 0; - EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code)); + EXPECT_TRUE(process.WaitForExit(&exit_code)); EXPECT_EQ(0, exit_code); ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); ASSERT_FALSE(channel->HasAcceptedConnection()); @@ -323,16 +323,16 @@ TEST_F(IPCChannelPosixTest, ResetState) { ASSERT_TRUE(channel->AcceptsConnections()); ASSERT_FALSE(channel->HasAcceptedConnection()); - base::ProcessHandle handle = SpawnChild("IPCChannelPosixTestConnectionProc"); - ASSERT_TRUE(handle); + base::Process process = SpawnChild("IPCChannelPosixTestConnectionProc"); + ASSERT_TRUE(process.IsValid()); SpinRunLoop(TestTimeouts::action_max_timeout()); ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); ASSERT_TRUE(channel->HasAcceptedConnection()); channel->ResetToAcceptingConnectionState(); ASSERT_FALSE(channel->HasAcceptedConnection()); - base::ProcessHandle handle2 = SpawnChild("IPCChannelPosixTestConnectionProc"); - ASSERT_TRUE(handle2); + base::Process process2 = SpawnChild("IPCChannelPosixTestConnectionProc"); + ASSERT_TRUE(process2.IsValid()); SpinRunLoop(TestTimeouts::action_max_timeout()); ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); ASSERT_TRUE(channel->HasAcceptedConnection()); @@ -341,9 +341,9 @@ TEST_F(IPCChannelPosixTest, ResetState) { IPC::Message::PRIORITY_NORMAL); channel->Send(message); SpinRunLoop(TestTimeouts::action_timeout()); - EXPECT_TRUE(base::KillProcess(handle, 0, false)); + EXPECT_TRUE(base::KillProcess(process.Handle(), 0, false)); int exit_code = 0; - EXPECT_TRUE(base::WaitForExitCode(handle2, &exit_code)); + EXPECT_TRUE(process2.WaitForExit(&exit_code)); EXPECT_EQ(0, exit_code); ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); ASSERT_FALSE(channel->HasAcceptedConnection()); @@ -383,16 +383,16 @@ TEST_F(IPCChannelPosixTest, MultiConnection) { ASSERT_TRUE(channel->AcceptsConnections()); ASSERT_FALSE(channel->HasAcceptedConnection()); - base::ProcessHandle handle = SpawnChild("IPCChannelPosixTestConnectionProc"); - ASSERT_TRUE(handle); + base::Process process = SpawnChild("IPCChannelPosixTestConnectionProc"); + ASSERT_TRUE(process.IsValid()); SpinRunLoop(TestTimeouts::action_max_timeout()); ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); ASSERT_TRUE(channel->HasAcceptedConnection()); - base::ProcessHandle handle2 = SpawnChild("IPCChannelPosixFailConnectionProc"); - ASSERT_TRUE(handle2); + base::Process process2 = SpawnChild("IPCChannelPosixFailConnectionProc"); + ASSERT_TRUE(process2.IsValid()); SpinRunLoop(TestTimeouts::action_max_timeout()); int exit_code = 0; - EXPECT_TRUE(base::WaitForExitCode(handle2, &exit_code)); + EXPECT_TRUE(process2.WaitForExit(&exit_code)); EXPECT_EQ(exit_code, 0); ASSERT_EQ(IPCChannelPosixTestListener::DENIED, listener.status()); ASSERT_TRUE(channel->HasAcceptedConnection()); @@ -401,7 +401,7 @@ TEST_F(IPCChannelPosixTest, MultiConnection) { IPC::Message::PRIORITY_NORMAL); channel->Send(message); SpinRunLoop(TestTimeouts::action_timeout()); - EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code)); + EXPECT_TRUE(process.WaitForExit(&exit_code)); EXPECT_EQ(exit_code, 0); ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); ASSERT_FALSE(channel->HasAcceptedConnection()); diff --git a/ipc/ipc_test_base.cc b/ipc/ipc_test_base.cc index ba4e711..17fce0b 100644 --- a/ipc/ipc_test_base.cc +++ b/ipc/ipc_test_base.cc @@ -22,8 +22,7 @@ std::string IPCTestBase::GetChannelName(const std::string& test_client_name) { return test_client_name + "__Channel"; } -IPCTestBase::IPCTestBase() - : client_process_(base::kNullProcessHandle) { +IPCTestBase::IPCTestBase() { } IPCTestBase::~IPCTestBase() { @@ -104,8 +103,8 @@ std::string IPCTestBase::GetTestMainName() const { } bool IPCTestBase::DidStartClient() { - DCHECK_NE(base::kNullProcessHandle, client_process_); - return client_process_ != base::kNullProcessHandle; + DCHECK(client_process_.IsValid()); + return client_process_.IsValid(); } #if defined(OS_POSIX) @@ -117,7 +116,7 @@ bool IPCTestBase::StartClient() { } bool IPCTestBase::StartClientWithFD(int ipcfd) { - DCHECK_EQ(client_process_, base::kNullProcessHandle); + DCHECK(!client_process_.IsValid()); base::FileHandleMappingVector fds_to_map; if (ipcfd > -1) @@ -133,7 +132,7 @@ bool IPCTestBase::StartClientWithFD(int ipcfd) { #elif defined(OS_WIN) bool IPCTestBase::StartClient() { - DCHECK_EQ(client_process_, base::kNullProcessHandle); + DCHECK(!client_process_.IsValid()); client_process_ = SpawnChild(GetTestMainName()); return DidStartClient(); } @@ -141,12 +140,11 @@ bool IPCTestBase::StartClient() { #endif bool IPCTestBase::WaitForClientShutdown() { - DCHECK(client_process_ != base::kNullProcessHandle); + DCHECK(client_process_.IsValid()); - bool rv = base::WaitForSingleProcess(client_process_, + bool rv = base::WaitForSingleProcess(client_process_.Handle(), base::TimeDelta::FromSeconds(5)); - base::CloseProcessHandle(client_process_); - client_process_ = base::kNullProcessHandle; + client_process_.Close(); return rv; } diff --git a/ipc/ipc_test_base.h b/ipc/ipc_test_base.h index 11f6455..5ed7dd5 100644 --- a/ipc/ipc_test_base.h +++ b/ipc/ipc_test_base.h @@ -100,7 +100,7 @@ class IPCTestBase : public base::MultiProcessTest { IPC::Channel* channel() { return channel_.get(); } IPC::ChannelProxy* channel_proxy() { return channel_proxy_.get(); } - const base::ProcessHandle& client_process() const { return client_process_; } + const base::Process& client_process() const { return client_process_; } scoped_refptr<base::TaskRunner> task_runner(); virtual scoped_ptr<IPC::ChannelFactory> CreateChannelFactory( @@ -117,7 +117,7 @@ class IPCTestBase : public base::MultiProcessTest { scoped_ptr<IPC::Channel> channel_; scoped_ptr<IPC::ChannelProxy> channel_proxy_; - base::ProcessHandle client_process_; + base::Process client_process_; DISALLOW_COPY_AND_ASSIGN(IPCTestBase); }; diff --git a/ipc/mojo/ipc_channel_mojo_unittest.cc b/ipc/mojo/ipc_channel_mojo_unittest.cc index 2442afe..47e72fc 100644 --- a/ipc/mojo/ipc_channel_mojo_unittest.cc +++ b/ipc/mojo/ipc_channel_mojo_unittest.cc @@ -89,7 +89,7 @@ class IPCChannelMojoTest : public IPCTestBase { bool DidStartClient() override { bool ok = IPCTestBase::DidStartClient(); DCHECK(ok); - host_->OnClientLaunched(client_process()); + host_->OnClientLaunched(client_process().Handle()); return ok; } @@ -195,7 +195,7 @@ class IPCChannelMojoErrorTest : public IPCTestBase { bool DidStartClient() override { bool ok = IPCTestBase::DidStartClient(); DCHECK(ok); - host_->OnClientLaunched(client_process()); + host_->OnClientLaunched(client_process().Handle()); return ok; } @@ -269,10 +269,11 @@ class IPCChannelMojoDeadHandleTest : public IPCTestBase { virtual bool DidStartClient() override { IPCTestBase::DidStartClient(); - base::ProcessHandle client = client_process(); + const base::ProcessHandle client = client_process().Handle(); // Forces GetFileHandleForProcess() fail. It happens occasionally // in production, so we should exercise it somehow. - ::CloseHandle(client); + // TODO(morrita): figure out how to safely test this. + // ::CloseHandle(client); host_->OnClientLaunched(client); return true; } diff --git a/ipc/mojo/ipc_mojo_bootstrap_unittest.cc b/ipc/mojo/ipc_mojo_bootstrap_unittest.cc index a071d66..fbe0fa8 100644 --- a/ipc/mojo/ipc_mojo_bootstrap_unittest.cc +++ b/ipc/mojo/ipc_mojo_bootstrap_unittest.cc @@ -55,7 +55,7 @@ TEST_F(IPCMojoBootstrapTest, Connect) { #else ASSERT_TRUE(StartClient()); #endif - bootstrap->OnClientLaunched(client_process()); + bootstrap->OnClientLaunched(client_process().Handle()); base::MessageLoop::current()->Run(); diff --git a/ipc/mojo/ipc_mojo_perftest.cc b/ipc/mojo/ipc_mojo_perftest.cc index 29e7839..8bdac8c9 100644 --- a/ipc/mojo/ipc_mojo_perftest.cc +++ b/ipc/mojo/ipc_mojo_perftest.cc @@ -40,7 +40,7 @@ public: bool DidStartClient() override { bool ok = IPCTestBase::DidStartClient(); DCHECK(ok); - host_->OnClientLaunched(client_process()); + host_->OnClientLaunched(client_process().Handle()); return ok; } diff --git a/ipc/sync_socket_unittest.cc b/ipc/sync_socket_unittest.cc index 77ae72d..238f2a8 100644 --- a/ipc/sync_socket_unittest.cc +++ b/ipc/sync_socket_unittest.cc @@ -184,7 +184,7 @@ TEST_F(SyncSocketTest, SanityTest) { #if defined(OS_WIN) // On windows we need to duplicate the handle into the server process. BOOL retval = DuplicateHandle(GetCurrentProcess(), pair[1].handle(), - client_process(), &target_handle, + client_process().Handle(), &target_handle, 0, FALSE, DUPLICATE_SAME_ACCESS); EXPECT_TRUE(retval); // Set up a message to pass the handle to the server. |