diff options
Diffstat (limited to 'ipc/ipc_send_fds_test.cc')
-rw-r--r-- | ipc/ipc_send_fds_test.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ipc/ipc_send_fds_test.cc b/ipc/ipc_send_fds_test.cc index 183a06c..809f4f5 100644 --- a/ipc/ipc_send_fds_test.cc +++ b/ipc/ipc_send_fds_test.cc @@ -70,6 +70,11 @@ class MyChannelDescriptorListener : public IPC::Channel::Listener { virtual void OnChannelError() { MessageLoop::current()->Quit(); } + + bool GotExpectedNumberOfDescriptors() { + return kNumFDsToSend == num_fds_received_; + } + private: ino_t expected_inode_num_; unsigned num_fds_received_; @@ -90,7 +95,7 @@ void TestDescriptorServer(IPC::Channel &chan, 3, // message type IPC::Message::PRIORITY_NORMAL); IPC::ParamTraits<base::FileDescriptor>::Write(message, descriptor); - chan.Send(message); + ASSERT_TRUE(chan.Send(message)); } // Run message loop. @@ -111,8 +116,14 @@ int TestDescriptorClient(ino_t expected_inode_num) { IPC::Channel chan(kTestClientChannel, IPC::Channel::MODE_CLIENT, &listener); CHECK(chan.Connect()); + + // Run message loop so IPC Channel can handle message IO. MessageLoop::current()->Run(); + // Verify that the message loop was exited due to getting the correct + // number of descriptors, and not because the channel closing unexpectedly. + CHECK(listener.GotExpectedNumberOfDescriptors()); + return 0; } |