Index: ipc/ipc_perftest_support.cc |
diff --git a/ipc/ipc_perftest_support.cc b/ipc/ipc_perftest_support.cc |
index dbff6275b1f10b5bd01b5e453ce3b6cf53ad45fa..742fcb7a494dd2572c342a2a2a22ae0b7eedc602 100644 |
--- a/ipc/ipc_perftest_support.cc |
+++ b/ipc/ipc_perftest_support.cc |
@@ -28,6 +28,7 @@ |
#include "ipc/ipc_descriptors.h" |
#include "ipc/ipc_message_utils.h" |
#include "ipc/ipc_sender.h" |
+#include "mojo/edk/test/scoped_ipc_support.h" |
namespace IPC { |
namespace test { |
@@ -248,14 +249,15 @@ IPCChannelPerfTestBase::GetDefaultTestParams() { |
void IPCChannelPerfTestBase::RunTestChannelPingPong( |
const std::vector<PingPongTestParams>& params) { |
- Init("PerformanceClient"); |
+ auto message_loop = base::MakeUnique<base::MessageLoopForIO>(); |
+ mojo::edk::test::ScopedIPCSupport ipc_support(message_loop->task_runner()); |
+ InitWithCustomMessageLoop("MojoPerfTestClient", std::move(message_loop)); |
// Set up IPC channel and start client. |
PerformanceChannelListener listener("Channel"); |
CreateChannel(&listener); |
listener.Init(channel()); |
ASSERT_TRUE(ConnectChannel()); |
- ASSERT_TRUE(StartClient()); |
LockThreadAffinity thread_locker(kSharedCore); |
for (size_t i = 0; i < params.size(); i++) { |
@@ -288,42 +290,45 @@ void IPCChannelPerfTestBase::RunTestChannelPingPong( |
void IPCChannelPerfTestBase::RunTestChannelProxyPingPong( |
const std::vector<PingPongTestParams>& params) { |
io_thread_.reset(new base::TestIOThread(base::TestIOThread::kAutoStart)); |
- InitWithCustomMessageLoop("PerformanceClient", |
- base::MakeUnique<base::MessageLoop>()); |
- |
- // Set up IPC channel and start client. |
- PerformanceChannelListener listener("ChannelProxy"); |
- CreateChannelProxy(&listener, io_thread_->task_runner()); |
- listener.Init(channel_proxy()); |
- ASSERT_TRUE(StartClient()); |
- |
- LockThreadAffinity thread_locker(kSharedCore); |
- for (size_t i = 0; i < params.size(); i++) { |
- listener.SetTestParams(params[i].message_count(), |
- params[i].message_size()); |
+ { |
+ auto message_loop = base::MakeUnique<base::MessageLoopForIO>(); |
+ mojo::edk::test::ScopedIPCSupport ipc_support(io_thread_->task_runner()); |
+ InitWithCustomMessageLoop("MojoPerfTestClient", std::move(message_loop)); |
+ |
+ // Set up IPC channel and start client. |
+ PerformanceChannelListener listener("ChannelProxy"); |
+ auto channel_proxy = IPC::ChannelProxy::Create( |
+ TakeHandle().release(), IPC::Channel::MODE_SERVER, &listener, |
+ io_thread_->task_runner()); |
+ listener.Init(channel_proxy.get()); |
+ |
+ LockThreadAffinity thread_locker(kSharedCore); |
+ for (size_t i = 0; i < params.size(); i++) { |
+ listener.SetTestParams(params[i].message_count(), |
+ params[i].message_size()); |
+ |
+ // This initial message will kick-start the ping-pong of messages. |
+ Message* message = new Message(0, 2, Message::PRIORITY_NORMAL); |
+ message->WriteInt64(base::TimeTicks::Now().ToInternalValue()); |
+ message->WriteInt(-1); |
+ message->WriteString("hello"); |
+ channel_proxy->Send(message); |
+ |
+ // Run message loop. |
+ base::RunLoop().Run(); |
+ } |
- // This initial message will kick-start the ping-pong of messages. |
- Message* message = |
- new Message(0, 2, Message::PRIORITY_NORMAL); |
+ // Send quit message. |
+ Message* message = new Message(0, 2, Message::PRIORITY_NORMAL); |
message->WriteInt64(base::TimeTicks::Now().ToInternalValue()); |
message->WriteInt(-1); |
- message->WriteString("hello"); |
- sender()->Send(message); |
+ message->WriteString("quit"); |
+ channel_proxy->Send(message); |
- // Run message loop. |
- base::RunLoop().Run(); |
+ EXPECT_TRUE(WaitForClientShutdown()); |
+ channel_proxy.reset(); |
} |
- // Send quit message. |
- Message* message = new Message(0, 2, Message::PRIORITY_NORMAL); |
- message->WriteInt64(base::TimeTicks::Now().ToInternalValue()); |
- message->WriteInt(-1); |
- message->WriteString("quit"); |
- sender()->Send(message); |
- |
- EXPECT_TRUE(WaitForClientShutdown()); |
- DestroyChannelProxy(); |
- |
io_thread_.reset(); |
} |
@@ -335,12 +340,6 @@ PingPongTestClient::PingPongTestClient() |
PingPongTestClient::~PingPongTestClient() { |
} |
-std::unique_ptr<Channel> PingPongTestClient::CreateChannel(Listener* listener) { |
- return Channel::CreateClient( |
- IPCTestBase::GetChannelName("PerformanceClient"), listener, |
- base::ThreadTaskRunnerHandle::Get()); |
-} |
- |
int PingPongTestClient::RunMain() { |
LockThreadAffinity thread_locker(kSharedCore); |
std::unique_ptr<Channel> channel = CreateChannel(listener_.get()); |