| Index: ipc/ipc_perftests.cc
|
| diff --git a/ipc/ipc_perftests.cc b/ipc/ipc_perftests.cc
|
| index 901f07afe156415d8f3fc0d152b6a35f94a22b6d..a24c47d28da51d921e51007bfaa0f9c49d5ae614 100644
|
| --- a/ipc/ipc_perftests.cc
|
| +++ b/ipc/ipc_perftests.cc
|
| @@ -4,13 +4,6 @@
|
|
|
| #include "build/build_config.h"
|
|
|
| -#if defined(OS_WIN)
|
| -#include <windows.h>
|
| -#elif defined(OS_POSIX)
|
| -#include <sys/types.h>
|
| -#include <unistd.h>
|
| -#endif
|
| -
|
| #include <algorithm>
|
| #include <string>
|
|
|
| @@ -26,7 +19,6 @@
|
| #include "ipc/ipc_channel.h"
|
| #include "ipc/ipc_channel_proxy.h"
|
| #include "ipc/ipc_message_utils.h"
|
| -#include "ipc/ipc_multiprocess_test.h"
|
| #include "ipc/ipc_sender.h"
|
| #include "ipc/ipc_test_base.h"
|
|
|
| @@ -143,9 +135,9 @@ class ChannelReflectorListener : public IPC::Listener {
|
| EventTimeTracker latency_tracker_;
|
| };
|
|
|
| -class ChannelPerfListener : public IPC::Listener {
|
| +class PerformanceChannelListener : public IPC::Listener {
|
| public:
|
| - ChannelPerfListener()
|
| + PerformanceChannelListener()
|
| : channel_(NULL),
|
| msg_count_(0),
|
| msg_size_(0),
|
| @@ -154,7 +146,7 @@ class ChannelPerfListener : public IPC::Listener {
|
| VLOG(1) << "Server listener up";
|
| }
|
|
|
| - ~ChannelPerfListener() {
|
| + ~PerformanceChannelListener() {
|
| VLOG(1) << "Server listener down";
|
| }
|
|
|
| @@ -229,22 +221,21 @@ class ChannelPerfListener : public IPC::Listener {
|
| };
|
|
|
| TEST_F(IPCChannelPerfTest, Performance) {
|
| - // Setup IPC channel.
|
| - ChannelPerfListener perf_listener;
|
| - IPC::Channel chan(kReflectorChannel, IPC::Channel::MODE_SERVER,
|
| - &perf_listener);
|
| - perf_listener.Init(&chan);
|
| - ASSERT_TRUE(chan.Connect());
|
| + Init("PerformanceClient");
|
|
|
| - base::ProcessHandle process_handle = SpawnChild(TEST_REFLECTOR, &chan);
|
| - ASSERT_TRUE(process_handle);
|
| + // Set up IPC channel and start client.
|
| + PerformanceChannelListener listener;
|
| + CreateChannel(&listener);
|
| + listener.Init(channel());
|
| + ASSERT_TRUE(ConnectChannel());
|
| + ASSERT_TRUE(StartClient());
|
|
|
| const size_t kMsgSizeBase = 12;
|
| const int kMsgSizeMaxExp = 5;
|
| int msg_count = 100000;
|
| size_t msg_size = kMsgSizeBase;
|
| for (int i = 1; i <= kMsgSizeMaxExp; i++) {
|
| - perf_listener.SetTestParams(msg_count, msg_size);
|
| + listener.SetTestParams(msg_count, msg_size);
|
|
|
| // This initial message will kick-start the ping-pong of messages.
|
| IPC::Message* message =
|
| @@ -252,7 +243,7 @@ TEST_F(IPCChannelPerfTest, Performance) {
|
| message->WriteInt64(base::TimeTicks::Now().ToInternalValue());
|
| message->WriteInt(-1);
|
| message->WriteString("hello");
|
| - chan.Send(message);
|
| + sender()->Send(message);
|
|
|
| // Run message loop.
|
| MessageLoop::current()->Run();
|
| @@ -265,22 +256,21 @@ TEST_F(IPCChannelPerfTest, Performance) {
|
| message->WriteInt64(base::TimeTicks::Now().ToInternalValue());
|
| message->WriteInt(-1);
|
| message->WriteString("quit");
|
| - chan.Send(message);
|
| + sender()->Send(message);
|
|
|
| - // Clean up child process.
|
| - EXPECT_TRUE(base::WaitForSingleProcess(process_handle,
|
| - base::TimeDelta::FromSeconds(5)));
|
| - base::CloseProcessHandle(process_handle);
|
| + EXPECT_TRUE(WaitForClientShutdown());
|
| + DestroyChannel();
|
| }
|
|
|
| // This message loop bounces all messages back to the sender.
|
| -MULTIPROCESS_IPC_TEST_MAIN(RunReflector) {
|
| +MULTIPROCESS_IPC_TEST_CLIENT_MAIN(PerformanceClient) {
|
| MessageLoopForIO main_message_loop;
|
| - ChannelReflectorListener channel_reflector_listener;
|
| - IPC::Channel chan(kReflectorChannel, IPC::Channel::MODE_CLIENT,
|
| - &channel_reflector_listener);
|
| - channel_reflector_listener.Init(&chan);
|
| - CHECK(chan.Connect());
|
| + ChannelReflectorListener listener;
|
| + IPC::Channel channel(IPCTestBase::GetChannelName("PerformanceClient"),
|
| + IPC::Channel::MODE_CLIENT,
|
| + &listener);
|
| + listener.Init(&channel);
|
| + CHECK(channel.Connect());
|
|
|
| MessageLoop::current()->Run();
|
| return 0;
|
|
|