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

Unified Diff: ipc/ipc_channel_mojo_unittest.cc

Issue 2451953003: Change most IPC tests to use ChannelMojo. (Closed)
Patch Set: Created 4 years, 2 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/DEPS ('k') | ipc/ipc_channel_proxy_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ipc/ipc_channel_mojo_unittest.cc
diff --git a/ipc/ipc_channel_mojo_unittest.cc b/ipc/ipc_channel_mojo_unittest.cc
index 5493ac11ec829f951dadc05c5a1cd106b6156f0a..229716edc0dbae08db8694e8537745961347d0bc 100644
--- a/ipc/ipc_channel_mojo_unittest.cc
+++ b/ipc/ipc_channel_mojo_unittest.cc
@@ -37,8 +37,6 @@
#include "ipc/ipc_test.mojom.h"
#include "ipc/ipc_test_base.h"
#include "ipc/ipc_test_channel_listener.h"
-#include "mojo/edk/test/mojo_test_base.h"
-#include "mojo/edk/test/multiprocess_test_helper.h"
#include "testing/gtest/include/gtest/gtest.h"
#if defined(OS_POSIX)
@@ -46,25 +44,6 @@
#include "ipc/ipc_platform_file_attachment_posix.h"
#endif
-#define DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(client_name, test_base) \
- class client_name##_MainFixture : public test_base { \
- public: \
- void Main(); \
- }; \
- MULTIPROCESS_TEST_MAIN_WITH_SETUP( \
- client_name##TestChildMain, \
- ::mojo::edk::test::MultiprocessTestHelper::ChildSetup) { \
- client_name##_MainFixture test; \
- test.Init( \
- std::move(mojo::edk::test::MultiprocessTestHelper::primordial_pipe)); \
- test.Main(); \
- return (::testing::Test::HasFatalFailure() || \
- ::testing::Test::HasNonfatalFailure()) \
- ? 1 \
- : 0; \
- } \
- void client_name##_MainFixture::Main()
-
namespace {
void SendString(IPC::Sender* sender, const std::string& str) {
@@ -108,73 +87,7 @@ class ListenerThatExpectsOK : public IPC::Listener {
bool received_ok_;
};
-class ChannelClient {
- public:
- void Init(mojo::ScopedMessagePipeHandle handle) {
- handle_ = std::move(handle);
- }
-
- void Connect(IPC::Listener* listener) {
- channel_ = IPC::ChannelMojo::Create(
- std::move(handle_), IPC::Channel::MODE_CLIENT, listener,
- base::ThreadTaskRunnerHandle::Get());
- CHECK(channel_->Connect());
- }
-
- void Close() {
- channel_->Close();
-
- base::RunLoop run_loop;
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
- run_loop.QuitClosure());
- run_loop.Run();
- }
-
- IPC::ChannelMojo* channel() const { return channel_.get(); }
-
- private:
- base::MessageLoopForIO main_message_loop_;
- mojo::ScopedMessagePipeHandle handle_;
- std::unique_ptr<IPC::ChannelMojo> channel_;
-};
-
-class IPCChannelMojoTestBase : public testing::Test {
- public:
- void InitWithMojo(const std::string& test_client_name) {
- handle_ = helper_.StartChild(test_client_name);
- }
-
- bool WaitForClientShutdown() { return helper_.WaitForChildTestShutdown(); }
-
- protected:
- mojo::ScopedMessagePipeHandle TakeHandle() { return std::move(handle_); }
-
- private:
- mojo::ScopedMessagePipeHandle handle_;
- mojo::edk::test::MultiprocessTestHelper helper_;
-};
-
-class IPCChannelMojoTest : public IPCChannelMojoTestBase {
- public:
- void TearDown() override { base::RunLoop().RunUntilIdle(); }
-
- void CreateChannel(IPC::Listener* listener) {
- channel_ = IPC::ChannelMojo::Create(
- TakeHandle(), IPC::Channel::MODE_SERVER, listener,
- base::ThreadTaskRunnerHandle::Get());
- }
-
- bool ConnectChannel() { return channel_->Connect(); }
-
- void DestroyChannel() { channel_.reset(); }
-
- IPC::Sender* sender() { return channel(); }
- IPC::Channel* channel() { return channel_.get(); }
-
- private:
- base::MessageLoop message_loop_;
- std::unique_ptr<IPC::Channel> channel_;
-};
+using IPCChannelMojoTest = IPCChannelMojoTestBase;
class TestChannelListenerWithExtraExpectations
: public IPC::TestChannelListener {
@@ -194,7 +107,7 @@ class TestChannelListenerWithExtraExpectations
};
TEST_F(IPCChannelMojoTest, ConnectedFromClient) {
- InitWithMojo("IPCChannelMojoTestClient");
+ Init("IPCChannelMojoTestClient");
// Set up IPC channel and start client.
TestChannelListenerWithExtraExpectations listener;
@@ -216,7 +129,7 @@ TEST_F(IPCChannelMojoTest, ConnectedFromClient) {
}
// A long running process that connects to us
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoTestClient, ChannelClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoTestClient) {
TestChannelListenerWithExtraExpectations listener;
Connect(&listener);
listener.Init(channel());
@@ -258,8 +171,7 @@ class ListenerThatQuits : public IPC::Listener {
};
// A long running process that connects to us.
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoErraticTestClient,
- ChannelClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoErraticTestClient) {
ListenerThatQuits listener;
Connect(&listener);
@@ -269,7 +181,7 @@ DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoErraticTestClient,
}
TEST_F(IPCChannelMojoTest, SendFailWithPendingMessages) {
- InitWithMojo("IPCChannelMojoErraticTestClient");
+ Init("IPCChannelMojoErraticTestClient");
// Set up IPC channel and start client.
ListenerExpectingErrors listener;
@@ -413,7 +325,7 @@ class ListenerThatExpectsMessagePipe : public IPC::Listener {
};
TEST_F(IPCChannelMojoTest, SendMessagePipe) {
- InitWithMojo("IPCChannelMojoTestSendMessagePipeClient");
+ Init("IPCChannelMojoTestSendMessagePipeClient");
ListenerThatExpectsOK listener;
CreateChannel(&listener);
@@ -429,8 +341,7 @@ TEST_F(IPCChannelMojoTest, SendMessagePipe) {
DestroyChannel();
}
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoTestSendMessagePipeClient,
- ChannelClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoTestSendMessagePipeClient) {
ListenerThatExpectsMessagePipe listener;
Connect(&listener);
listener.set_sender(channel());
@@ -491,7 +402,7 @@ class ListenerThatExpectsMessagePipeUsingParamTrait : public IPC::Listener {
bool receiving_valid_;
};
-class ParamTraitMessagePipeClient : public ChannelClient {
+class ParamTraitMessagePipeClient : public IpcChannelMojoTestClient {
public:
void RunTest(bool receiving_valid_handle) {
ListenerThatExpectsMessagePipeUsingParamTrait listener(
@@ -506,7 +417,7 @@ class ParamTraitMessagePipeClient : public ChannelClient {
};
TEST_F(IPCChannelMojoTest, ParamTraitValidMessagePipe) {
- InitWithMojo("ParamTraitValidMessagePipeClient");
+ Init("ParamTraitValidMessagePipeClient");
ListenerThatExpectsOK listener;
CreateChannel(&listener);
@@ -527,13 +438,14 @@ TEST_F(IPCChannelMojoTest, ParamTraitValidMessagePipe) {
DestroyChannel();
}
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(ParamTraitValidMessagePipeClient,
- ParamTraitMessagePipeClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT_WITH_CUSTOM_FIXTURE(
+ ParamTraitValidMessagePipeClient,
+ ParamTraitMessagePipeClient) {
RunTest(true);
}
TEST_F(IPCChannelMojoTest, ParamTraitInvalidMessagePipe) {
- InitWithMojo("ParamTraitInvalidMessagePipeClient");
+ Init("ParamTraitInvalidMessagePipeClient");
ListenerThatExpectsOK listener;
CreateChannel(&listener);
@@ -552,13 +464,14 @@ TEST_F(IPCChannelMojoTest, ParamTraitInvalidMessagePipe) {
DestroyChannel();
}
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(ParamTraitInvalidMessagePipeClient,
- ParamTraitMessagePipeClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT_WITH_CUSTOM_FIXTURE(
+ ParamTraitInvalidMessagePipeClient,
+ ParamTraitMessagePipeClient) {
RunTest(false);
}
TEST_F(IPCChannelMojoTest, SendFailAfterClose) {
- InitWithMojo("IPCChannelMojoTestSendOkClient");
+ Init("IPCChannelMojoTestSendOkClient");
ListenerThatExpectsOK listener;
CreateChannel(&listener);
@@ -589,8 +502,7 @@ class ListenerSendingOneOk : public IPC::Listener {
IPC::Sender* sender_;
};
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoTestSendOkClient,
- ChannelClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoTestSendOkClient) {
ListenerSendingOneOk listener;
Connect(&listener);
listener.set_sender(channel());
@@ -695,7 +607,7 @@ class ListenerSendingAssociatedMessages : public IPC::Listener {
};
TEST_F(IPCChannelMojoTest, SimpleAssociatedInterface) {
- InitWithMojo("SimpleAssociatedInterfaceClient");
+ Init("SimpleAssociatedInterfaceClient");
ListenerWithSimpleAssociatedInterface listener;
CreateChannel(&listener);
@@ -710,8 +622,7 @@ TEST_F(IPCChannelMojoTest, SimpleAssociatedInterface) {
DestroyChannel();
}
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(SimpleAssociatedInterfaceClient,
- ChannelClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(SimpleAssociatedInterfaceClient) {
ListenerSendingAssociatedMessages listener;
Connect(&listener);
listener.set_channel(channel());
@@ -766,8 +677,8 @@ class ChannelProxyRunner {
class IPCChannelProxyMojoTest : public IPCChannelMojoTestBase {
public:
- void InitWithMojo(const std::string& client_name) {
- IPCChannelMojoTestBase::InitWithMojo(client_name);
+ void Init(const std::string& client_name) {
+ IPCChannelMojoTestBase::Init(client_name);
runner_.reset(new ChannelProxyRunner(TakeHandle(), true));
}
void CreateProxy(IPC::Listener* listener) { runner_->CreateProxy(listener); }
@@ -782,7 +693,6 @@ class IPCChannelProxyMojoTest : public IPCChannelMojoTestBase {
IPC::ChannelProxy* proxy() { return runner_->proxy(); }
private:
- base::MessageLoop message_loop_;
std::unique_ptr<ChannelProxyRunner> runner_;
};
@@ -858,7 +768,7 @@ class ListenerWithSimpleProxyAssociatedInterface
const int ListenerWithSimpleProxyAssociatedInterface::kNumMessages = 1000;
TEST_F(IPCChannelProxyMojoTest, ProxyThreadAssociatedInterface) {
- InitWithMojo("ProxyThreadAssociatedInterfaceClient");
+ Init("ProxyThreadAssociatedInterfaceClient");
ListenerWithSimpleProxyAssociatedInterface listener;
CreateProxy(&listener);
@@ -906,8 +816,9 @@ class DummyListener : public IPC::Listener {
bool OnMessageReceived(const IPC::Message& message) override { return true; }
};
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(ProxyThreadAssociatedInterfaceClient,
- ChannelProxyClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT_WITH_CUSTOM_FIXTURE(
+ ProxyThreadAssociatedInterfaceClient,
+ ChannelProxyClient) {
DummyListener listener;
CreateProxy(&listener);
RunProxy();
@@ -977,7 +888,7 @@ TEST_F(IPCChannelProxyMojoTest, ProxyThreadAssociatedInterfaceIndirect) {
// targeting proxy thread bindings, and the channel will still dispatch
// messages appropriately.
- InitWithMojo("ProxyThreadAssociatedInterfaceIndirectClient");
+ Init("ProxyThreadAssociatedInterfaceIndirectClient");
ListenerWithIndirectProxyAssociatedInterface listener;
CreateProxy(&listener);
@@ -993,7 +904,7 @@ TEST_F(IPCChannelProxyMojoTest, ProxyThreadAssociatedInterfaceIndirect) {
DestroyProxy();
}
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT_WITH_CUSTOM_FIXTURE(
ProxyThreadAssociatedInterfaceIndirectClient,
ChannelProxyClient) {
DummyListener listener;
@@ -1110,7 +1021,7 @@ class SyncReplyReader : public IPC::MessageReplyDeserializer {
};
TEST_F(IPCChannelProxyMojoTest, SyncAssociatedInterface) {
- InitWithMojo("SyncAssociatedInterface");
+ Init("SyncAssociatedInterface");
ListenerWithSyncAssociatedInterface listener;
CreateProxy(&listener);
@@ -1216,8 +1127,8 @@ class SimpleTestClientImpl : public IPC::mojom::SimpleTestClient,
DISALLOW_COPY_AND_ASSIGN(SimpleTestClientImpl);
};
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(SyncAssociatedInterface,
- ChannelProxyClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT_WITH_CUSTOM_FIXTURE(SyncAssociatedInterface,
+ ChannelProxyClient) {
SimpleTestClientImpl client_impl;
CreateProxy(&client_impl);
client_impl.set_sync_sender(proxy());
@@ -1276,7 +1187,7 @@ TEST_F(IPCChannelProxyMojoTest, Pause) {
// sufficient to leave this up to the consumer to implement since associated
// interface requests and messages also need to be queued according to the
// same policy.
- InitWithMojo("CreatePausedClient");
+ Init("CreatePausedClient");
DummyListener listener;
CreateProxy(&listener);
@@ -1329,7 +1240,8 @@ class ExpectValueSequenceListener : public IPC::Listener {
DISALLOW_COPY_AND_ASSIGN(ExpectValueSequenceListener);
};
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(CreatePausedClient, ChannelProxyClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT_WITH_CUSTOM_FIXTURE(CreatePausedClient,
+ ChannelProxyClient) {
std::queue<int32_t> expected_values;
ExpectValueSequenceListener listener(&expected_values);
CreateProxy(&listener);
@@ -1370,7 +1282,7 @@ class ListenerThatExpectsFile : public IPC::Listener {
};
TEST_F(IPCChannelMojoTest, SendPlatformHandle) {
- InitWithMojo("IPCChannelMojoTestSendPlatformHandleClient");
+ Init("IPCChannelMojoTestSendPlatformHandleClient");
ListenerThatExpectsOK listener;
CreateChannel(&listener);
@@ -1390,8 +1302,8 @@ TEST_F(IPCChannelMojoTest, SendPlatformHandle) {
DestroyChannel();
}
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoTestSendPlatformHandleClient,
- ChannelClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(
+ IPCChannelMojoTestSendPlatformHandleClient) {
ListenerThatExpectsFile listener;
Connect(&listener);
listener.set_sender(channel());
@@ -1426,7 +1338,7 @@ class ListenerThatExpectsFileAndPipe : public IPC::Listener {
};
TEST_F(IPCChannelMojoTest, SendPlatformHandleAndPipe) {
- InitWithMojo("IPCChannelMojoTestSendPlatformHandleAndPipeClient");
+ Init("IPCChannelMojoTestSendPlatformHandleAndPipeClient");
ListenerThatExpectsOK listener;
CreateChannel(&listener);
@@ -1448,8 +1360,7 @@ TEST_F(IPCChannelMojoTest, SendPlatformHandleAndPipe) {
}
DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(
- IPCChannelMojoTestSendPlatformHandleAndPipeClient,
- ChannelClient) {
+ IPCChannelMojoTestSendPlatformHandleAndPipeClient) {
ListenerThatExpectsFileAndPipe listener;
Connect(&listener);
listener.set_sender(channel());
@@ -1479,7 +1390,7 @@ class ListenerThatVerifiesPeerPid : public IPC::Listener {
};
TEST_F(IPCChannelMojoTest, VerifyGlobalPid) {
- InitWithMojo("IPCChannelMojoTestVerifyGlobalPidClient");
+ Init("IPCChannelMojoTestVerifyGlobalPidClient");
ListenerThatVerifiesPeerPid listener;
CreateChannel(&listener);
@@ -1492,8 +1403,7 @@ TEST_F(IPCChannelMojoTest, VerifyGlobalPid) {
DestroyChannel();
}
-DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoTestVerifyGlobalPidClient,
- ChannelClient) {
+DEFINE_IPC_CHANNEL_MOJO_TEST_CLIENT(IPCChannelMojoTestVerifyGlobalPidClient) {
IPC::Channel::SetGlobalPid(kMagicChildId);
ListenerThatQuits listener;
Connect(&listener);
« no previous file with comments | « ipc/DEPS ('k') | ipc/ipc_channel_proxy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698