Index: ipc/ipc_send_fds_test.cc |
diff --git a/ipc/ipc_send_fds_test.cc b/ipc/ipc_send_fds_test.cc |
index 635b80a6365e124b5a53269fb5aaea10d34160ae..f92b119a3cadb72be167ce05ed95428cc504f45d 100644 |
--- a/ipc/ipc_send_fds_test.cc |
+++ b/ipc/ipc_send_fds_test.cc |
@@ -113,13 +113,15 @@ |
unsigned num_fds_received_; |
}; |
-class IPCSendFdsTest : public IPCChannelMojoTestBase { |
+ |
+class IPCSendFdsTest : public IPCTestBase { |
protected: |
void RunServer() { |
// Set up IPC channel and start client. |
MyChannelDescriptorListener listener(-1); |
CreateChannel(&listener); |
ASSERT_TRUE(ConnectChannel()); |
+ ASSERT_TRUE(StartClient()); |
for (unsigned i = 0; i < kNumMessages; ++i) { |
IPC::Message* message = |
@@ -149,34 +151,33 @@ |
RunServer(); |
} |
-class SendFdsTestClientFixture : public IpcChannelMojoTestClient { |
- protected: |
- void SendFdsClientCommon(const std::string& test_client_name, |
- ino_t expected_inode_num) { |
- MyChannelDescriptorListener listener(expected_inode_num); |
- |
- // Set up IPC channel. |
- Connect(&listener); |
- |
- // Run message loop. |
- base::RunLoop().Run(); |
- |
- // Verify that the message loop was exited due to getting the correct number |
- // of descriptors, and not because of the channel closing unexpectedly. |
- EXPECT_TRUE(listener.GotExpectedNumberOfDescriptors()); |
- |
- Close(); |
- } |
-}; |
- |
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT_WITH_CUSTOM_FIXTURE( |
- SendFdsClient, |
- SendFdsTestClientFixture) { |
+int SendFdsClientCommon(const std::string& test_client_name, |
+ ino_t expected_inode_num) { |
+ base::MessageLoopForIO main_message_loop; |
+ MyChannelDescriptorListener listener(expected_inode_num); |
+ |
+ // Set up IPC channel. |
+ std::unique_ptr<IPC::Channel> channel(IPC::Channel::CreateClient( |
+ IPCTestBase::GetChannelName(test_client_name), &listener, |
+ main_message_loop.task_runner())); |
+ CHECK(channel->Connect()); |
+ |
+ // Run message loop. |
+ base::RunLoop().Run(); |
+ |
+ // Verify that the message loop was exited due to getting the correct number |
+ // of descriptors, and not because of the channel closing unexpectedly. |
+ CHECK(listener.GotExpectedNumberOfDescriptors()); |
+ |
+ return 0; |
+} |
+ |
+MULTIPROCESS_IPC_TEST_CLIENT_MAIN(SendFdsClient) { |
struct stat st; |
int fd = open(kDevZeroPath, O_RDONLY); |
fstat(fd, &st); |
EXPECT_GE(IGNORE_EINTR(close(fd)), 0); |
- SendFdsClientCommon("SendFdsClient", st.st_ino); |
+ return SendFdsClientCommon("SendFdsClient", st.st_ino); |
} |
#if defined(OS_MACOSX) |
@@ -187,29 +188,31 @@ |
RunServer(); |
} |
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT_WITH_CUSTOM_FIXTURE( |
- SendFdsSandboxedClient, |
- SendFdsTestClientFixture) { |
+MULTIPROCESS_IPC_TEST_CLIENT_MAIN(SendFdsSandboxedClient) { |
struct stat st; |
const int fd = open(kDevZeroPath, O_RDONLY); |
fstat(fd, &st); |
- ASSERT_LE(0, IGNORE_EINTR(close(fd))); |
+ if (IGNORE_EINTR(close(fd)) < 0) |
+ return -1; |
// Enable the sandbox. |
char* error_buff = NULL; |
int error = sandbox::Seatbelt::Init( |
sandbox::Seatbelt::kProfilePureComputation, SANDBOX_NAMED, &error_buff); |
- ASSERT_EQ(0, error); |
- ASSERT_FALSE(error_buff); |
+ bool success = (error == 0 && error_buff == NULL); |
+ if (!success) |
+ return -1; |
sandbox::Seatbelt::FreeError(error_buff); |
// Make sure sandbox is really enabled. |
- ASSERT_EQ(-1, open(kDevZeroPath, O_RDONLY)) |
- << "Sandbox wasn't properly enabled"; |
+ if (open(kDevZeroPath, O_RDONLY) != -1) { |
+ LOG(ERROR) << "Sandbox wasn't properly enabled"; |
+ return -1; |
+ } |
// See if we can receive a file descriptor. |
- SendFdsClientCommon("SendFdsSandboxedClient", st.st_ino); |
+ return SendFdsClientCommon("SendFdsSandboxedClient", st.st_ino); |
} |
#endif // defined(OS_MACOSX) |