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

Unified Diff: ipc/ipc_test_base.h

Issue 2473993003: Delete IPC::ChannelPosix, IPC::ChannelWin and IPC::AttachmentBroker. (Closed)
Patch Set: Created 4 years, 1 month 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_send_fds_test.cc ('k') | ipc/ipc_test_base.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ipc/ipc_test_base.h
diff --git a/ipc/ipc_test_base.h b/ipc/ipc_test_base.h
index 8a84fb672786daf12173017fac8e8d799be87e0e..6623955f6b64f7d992963ce857b142305bc3b541 100644
--- a/ipc/ipc_test_base.h
+++ b/ipc/ipc_test_base.h
@@ -15,7 +15,6 @@
#include "ipc/ipc_channel.h"
#include "ipc/ipc_channel_factory.h"
#include "ipc/ipc_channel_proxy.h"
-#include "ipc/ipc_multiprocess_test.h"
#include "mojo/edk/test/mojo_test_base.h"
#include "mojo/edk/test/multiprocess_test_helper.h"
@@ -23,124 +22,15 @@ namespace base {
class MessageLoop;
}
-namespace IPC {
-class AttachmentBroker;
-}
-
-// A test fixture for multiprocess IPC tests. Such tests include a "client" side
-// (running in a separate process). The same client may be shared between
-// several different tests.
-class IPCTestBase : public base::MultiProcessTest {
- public:
- // The channel name is based on the client's name. This is a public static
- // helper to be used by the client-side code; server-side test code should
- // usually not use this (directly).
- static std::string GetChannelName(const std::string& test_client_name);
-
- protected:
- IPCTestBase();
- ~IPCTestBase() override;
-
- void TearDown() override;
-
- // Initializes the test to use the given client and creates an IO message loop
- // on the current thread.
- void Init(const std::string& test_client_name);
- // Some tests create separate thread for IO message loop and run non-IO
- // message loop on the main thread. As IPCTestBase creates IO message loop by
- // default, such tests need to provide a custom message loop for the main
- // thread.
- virtual void InitWithCustomMessageLoop(
- const std::string& test_client_name,
- std::unique_ptr<base::MessageLoop> message_loop);
-
- // Creates a channel with the given listener and connects to the channel
- // (returning true if successful), respectively. Use these to use a channel
- // directly. Since the listener must outlive the channel, you must destroy the
- // channel before the listener gets destroyed.
- void CreateChannel(IPC::Listener* listener);
- bool ConnectChannel();
- void DestroyChannel();
-
- // Releases or replaces existing channel.
- // These are useful for testing specific types of channel subclasses.
- std::unique_ptr<IPC::Channel> ReleaseChannel();
- void SetChannel(std::unique_ptr<IPC::Channel> channel);
-
- // Use this instead of CreateChannel() if you want to use some different
- // channel specification (then use ConnectChannel() as usual).
- void CreateChannelFromChannelHandle(const IPC::ChannelHandle& channel_handle,
- IPC::Listener* listener);
-
- // Creates a channel proxy with the given listener and task runner. (The
- // channel proxy will automatically create and connect a channel.) You must
- // (manually) destroy the channel proxy before the task runner's thread is
- // destroyed.
- void CreateChannelProxy(
- IPC::Listener* listener,
- const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner);
- void DestroyChannelProxy();
-
- // Starts the client process, returning true if successful; this should be
- // done after connecting to the channel.
- virtual bool StartClient();
-
-#if defined(OS_POSIX)
- // A StartClient() variant that allows caller to pass the FD of IPC pipe
- bool StartClientWithFD(int ipcfd);
-#endif
-
- // Waits for the client to shut down, returning true if successful. Note that
- // this does not initiate client shutdown; that must be done by the test
- // (somehow). This must be called before the end of the test whenever
- // StartClient() was called successfully.
- virtual bool WaitForClientShutdown();
-
- IPC::ChannelHandle GetTestChannelHandle();
-
- // Use this to send IPC messages (when you don't care if you're using a
- // channel or a proxy).
- IPC::Sender* sender() {
- return channel_.get() ? static_cast<IPC::Sender*>(channel_.get()) :
- static_cast<IPC::Sender*>(channel_proxy_.get());
- }
-
- IPC::Channel* channel() { return channel_.get(); }
- IPC::ChannelProxy* channel_proxy() { return channel_proxy_.get(); }
- void set_channel_proxy(std::unique_ptr<IPC::ChannelProxy> proxy) {
- DCHECK(!channel_proxy_);
- channel_proxy_.swap(proxy);
- }
-
- const base::Process& client_process() const { return client_process_; }
- scoped_refptr<base::SingleThreadTaskRunner> task_runner();
-
- virtual std::unique_ptr<IPC::ChannelFactory> CreateChannelFactory(
- const IPC::ChannelHandle& handle,
- base::SingleThreadTaskRunner* runner);
-
- virtual bool DidStartClient();
-
- private:
- std::string GetTestMainName() const;
-
- std::string test_client_name_;
- std::unique_ptr<base::MessageLoop> message_loop_;
-
- std::unique_ptr<IPC::Channel> channel_;
- std::unique_ptr<IPC::ChannelProxy> channel_proxy_;
-
- base::Process client_process_;
-
- DISALLOW_COPY_AND_ASSIGN(IPCTestBase);
-};
-
class IPCChannelMojoTestBase : public testing::Test {
public:
IPCChannelMojoTestBase();
~IPCChannelMojoTestBase() override;
void Init(const std::string& test_client_name);
+ void InitWithCustomMessageLoop(
+ const std::string& test_client_name,
+ std::unique_ptr<base::MessageLoop> message_loop);
bool WaitForClientShutdown();
@@ -160,7 +50,7 @@ class IPCChannelMojoTestBase : public testing::Test {
mojo::ScopedMessagePipeHandle TakeHandle();
private:
- base::MessageLoop message_loop_;
+ std::unique_ptr<base::MessageLoop> message_loop_;
mojo::ScopedMessagePipeHandle handle_;
mojo::edk::test::MultiprocessTestHelper helper_;
@@ -189,10 +79,6 @@ class IpcChannelMojoTestClient {
std::unique_ptr<IPC::Channel> channel_;
};
-// Use this to declare the client side for tests using IPCTestBase.
-#define MULTIPROCESS_IPC_TEST_CLIENT_MAIN(test_client_name) \
- MULTIPROCESS_IPC_TEST_MAIN(test_client_name ## TestClientMain)
-
// Use this to declare the client side for tests using IPCChannelMojoTestBase
// when a custom test fixture class is required in the client. |test_base| must
// be derived from IpcChannelMojoTestClient.
« no previous file with comments | « ipc/ipc_send_fds_test.cc ('k') | ipc/ipc_test_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698