Index: mojo/edk/system/remote_message_pipe_unittest.cc |
diff --git a/mojo/edk/system/remote_message_pipe_unittest.cc b/mojo/edk/system/remote_message_pipe_unittest.cc |
index d34602c9a382ea6dc91bf41e9a86392d24606162..8a02f2e4de9970d23fd566b8b9a1c320fde9f1e3 100644 |
--- a/mojo/edk/system/remote_message_pipe_unittest.cc |
+++ b/mojo/edk/system/remote_message_pipe_unittest.cc |
@@ -27,6 +27,7 @@ |
#include "mojo/edk/system/channel.h" |
#include "mojo/edk/system/channel_endpoint.h" |
#include "mojo/edk/system/channel_endpoint_id.h" |
+#include "mojo/edk/system/incoming_endpoint.h" |
#include "mojo/edk/system/message_pipe.h" |
#include "mojo/edk/system/message_pipe_dispatcher.h" |
#include "mojo/edk/system/platform_handle_dispatcher.h" |
@@ -139,8 +140,8 @@ class RemoteMessagePipeTest : public testing::Test { |
if (!channels_[1]) |
CreateAndInitChannel(1); |
- channels_[0]->AttachAndRunEndpoint(ep0, true); |
- channels_[1]->AttachAndRunEndpoint(ep1, true); |
+ channels_[0]->SetBootstrapEndpoint(ep0); |
+ channels_[1]->SetBootstrapEndpoint(ep1); |
} |
void BootstrapChannelEndpointOnIOThread(unsigned channel_index, |
@@ -149,7 +150,7 @@ class RemoteMessagePipeTest : public testing::Test { |
CHECK(channel_index == 0 || channel_index == 1); |
CreateAndInitChannel(channel_index); |
- channels_[channel_index]->AttachAndRunEndpoint(ep, true); |
+ channels_[channel_index]->SetBootstrapEndpoint(ep); |
} |
void RestoreInitialStateOnIOThread() { |
@@ -333,8 +334,9 @@ TEST_F(RemoteMessagePipeTest, Multiplex) { |
scoped_refptr<ChannelEndpoint> ep2; |
scoped_refptr<MessagePipe> mp2(MessagePipe::CreateLocalProxy(&ep2)); |
ASSERT_TRUE(channels(0)); |
- ChannelEndpointId remote_id = channels(0)->AttachAndRunEndpoint(ep2, false); |
- EXPECT_TRUE(remote_id.is_remote()); |
+ size_t endpoint_info_size = channels(0)->GetSerializedEndpointSize(); |
+ scoped_ptr<char[]> endpoint_info(new char[endpoint_info_size]); |
+ channels(0)->SerializeEndpoint(ep2, endpoint_info.get()); |
waiter.Init(); |
ASSERT_EQ( |
@@ -342,9 +344,9 @@ TEST_F(RemoteMessagePipeTest, Multiplex) { |
mp1->AddAwakable(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123, nullptr)); |
EXPECT_EQ(MOJO_RESULT_OK, |
- mp0->WriteMessage(0, UserPointer<const void>(&remote_id), |
- sizeof(remote_id), nullptr, |
- MOJO_WRITE_MESSAGE_FLAG_NONE)); |
+ mp0->WriteMessage(0, UserPointer<const void>(endpoint_info.get()), |
+ static_cast<uint32_t>(endpoint_info_size), |
+ nullptr, MOJO_WRITE_MESSAGE_FLAG_NONE)); |
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); |
EXPECT_EQ(123u, context); |
@@ -354,18 +356,22 @@ TEST_F(RemoteMessagePipeTest, Multiplex) { |
hss.satisfied_signals); |
EXPECT_EQ(kAllSignals, hss.satisfiable_signals); |
- ChannelEndpointId received_id; |
- buffer_size = static_cast<uint32_t>(sizeof(received_id)); |
+ EXPECT_EQ(endpoint_info_size, channels(1)->GetSerializedEndpointSize()); |
+ scoped_ptr<char[]> received_endpoint_info(new char[endpoint_info_size]); |
+ buffer_size = static_cast<uint32_t>(endpoint_info_size); |
EXPECT_EQ(MOJO_RESULT_OK, |
- mp1->ReadMessage(1, UserPointer<void>(&received_id), |
+ mp1->ReadMessage(1, UserPointer<void>(received_endpoint_info.get()), |
MakeUserPointer(&buffer_size), nullptr, nullptr, |
MOJO_READ_MESSAGE_FLAG_NONE)); |
- EXPECT_EQ(sizeof(received_id), static_cast<size_t>(buffer_size)); |
- EXPECT_EQ(remote_id, received_id); |
+ EXPECT_EQ(endpoint_info_size, static_cast<size_t>(buffer_size)); |
+ EXPECT_EQ(0, memcmp(received_endpoint_info.get(), endpoint_info.get(), |
+ endpoint_info_size)); |
// Warning: The local side of mp3 is port 0, not port 1. |
- scoped_refptr<MessagePipe> mp3 = |
- channels(1)->PassIncomingMessagePipe(received_id); |
+ scoped_refptr<IncomingEndpoint> incoming_endpoint = |
+ channels(1)->DeserializeEndpoint(received_endpoint_info.get()); |
+ ASSERT_TRUE(incoming_endpoint); |
+ scoped_refptr<MessagePipe> mp3 = incoming_endpoint->ConvertToMessagePipe(); |
ASSERT_TRUE(mp3); |
// Write: MP 2, port 0 -> MP 3, port 1. |