| 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());
|
|
|