Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(328)

Unified Diff: ipc/ipc_perftests.cc

Issue 12051048: Refactor (many) IPC tests, notably most of the multiprocess tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ipc/ipc_multiprocess_test.cc ('k') | ipc/ipc_send_fds_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
« no previous file with comments | « ipc/ipc_multiprocess_test.cc ('k') | ipc/ipc_send_fds_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698