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

Unified Diff: mojo/edk/system/connection_manager_unittest.cc

Issue 1465203003: EDK: Make ConnectionManagerTest not use base::MessageLoop/RunLoop. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 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 | « mojo/edk/system/BUILD.gn ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/edk/system/connection_manager_unittest.cc
diff --git a/mojo/edk/system/connection_manager_unittest.cc b/mojo/edk/system/connection_manager_unittest.cc
index c28e67c1a3b207b5190a62273293e468fe30c493..8e2e219422c4270cc724a114b2bc684854ff91dd 100644
--- a/mojo/edk/system/connection_manager_unittest.cc
+++ b/mojo/edk/system/connection_manager_unittest.cc
@@ -9,16 +9,17 @@
#include <stdint.h>
+#include <memory>
#include <string>
-#include "base/message_loop/message_loop.h"
-#include "base/run_loop.h"
#include "base/threading/thread_checker.h"
#include "mojo/edk/base_edk/platform_task_runner_impl.h"
#include "mojo/edk/embedder/master_process_delegate.h"
#include "mojo/edk/embedder/platform_channel_pair.h"
#include "mojo/edk/embedder/simple_platform_support.h"
#include "mojo/edk/embedder/slave_process_delegate.h"
+#include "mojo/edk/platform/message_loop.h"
+#include "mojo/edk/platform/test_message_loop.h"
#include "mojo/edk/system/master_connection_manager.h"
#include "mojo/edk/system/slave_connection_manager.h"
#include "mojo/edk/test/test_utils.h"
@@ -26,7 +27,9 @@
#include "mojo/public/cpp/system/macros.h"
#include "testing/gtest/include/gtest/gtest.h"
+using mojo::platform::MessageLoop;
using mojo::platform::TaskRunner;
+using mojo::platform::test::CreateTestMessageLoop;
using mojo::util::MakeRefCounted;
using mojo::util::RefPtr;
@@ -87,15 +90,14 @@ class TestSlaveInfo {
class MockMasterProcessDelegate : public embedder::MasterProcessDelegate {
public:
MockMasterProcessDelegate()
- : current_run_loop_(), on_slave_disconnect_calls_(0) {}
+ : current_message_loop_(), on_slave_disconnect_calls_(0) {}
~MockMasterProcessDelegate() override {}
- void RunUntilNotified() {
- CHECK(!current_run_loop_);
- base::RunLoop run_loop;
- current_run_loop_ = &run_loop;
- run_loop.Run();
- current_run_loop_ = nullptr;
+ void RunUntilNotified(MessageLoop* message_loop) {
+ CHECK(!current_message_loop_);
+ current_message_loop_ = message_loop;
+ message_loop->Run();
+ current_message_loop_ = nullptr;
}
unsigned on_slave_disconnect_calls() const {
@@ -117,13 +119,13 @@ class MockMasterProcessDelegate : public embedder::MasterProcessDelegate {
<< last_slave_disconnect_name_;
delete static_cast<TestSlaveInfo*>(slave_info);
- if (current_run_loop_)
- current_run_loop_->Quit();
+ if (current_message_loop_)
+ current_message_loop_->QuitNow();
}
private:
base::ThreadChecker thread_checker_;
- base::RunLoop* current_run_loop_;
+ MessageLoop* current_message_loop_;
unsigned on_slave_disconnect_calls_;
std::string last_slave_disconnect_name_;
@@ -134,15 +136,14 @@ class MockMasterProcessDelegate : public embedder::MasterProcessDelegate {
class MockSlaveProcessDelegate : public embedder::SlaveProcessDelegate {
public:
MockSlaveProcessDelegate()
- : current_run_loop_(), on_master_disconnect_calls_(0) {}
+ : current_message_loop_(), on_master_disconnect_calls_(0) {}
~MockSlaveProcessDelegate() override {}
- void RunUntilNotified() {
- CHECK(!current_run_loop_);
- base::RunLoop run_loop;
- current_run_loop_ = &run_loop;
- run_loop.Run();
- current_run_loop_ = nullptr;
+ void RunUntilNotified(MessageLoop* message_loop) {
+ CHECK(!current_message_loop_);
+ current_message_loop_ = message_loop;
+ message_loop->Run();
+ current_message_loop_ = nullptr;
}
unsigned on_master_disconnect_calls() const {
@@ -157,13 +158,13 @@ class MockSlaveProcessDelegate : public embedder::SlaveProcessDelegate {
on_master_disconnect_calls_++;
DVLOG(1) << "Disconnected from master process";
- if (current_run_loop_)
- current_run_loop_->Quit();
+ if (current_message_loop_)
+ current_message_loop_->QuitNow();
}
private:
base::ThreadChecker thread_checker_;
- base::RunLoop* current_run_loop_;
+ MessageLoop* current_message_loop_;
unsigned on_master_disconnect_calls_;
@@ -172,13 +173,14 @@ class MockSlaveProcessDelegate : public embedder::SlaveProcessDelegate {
class ConnectionManagerTest : public testing::Test {
protected:
- ConnectionManagerTest()
- : task_runner_(MakeRefCounted<base_edk::PlatformTaskRunnerImpl>(
- message_loop_.task_runner())) {}
+ ConnectionManagerTest() : message_loop_(CreateTestMessageLoop()) {}
~ConnectionManagerTest() override {}
embedder::PlatformSupport* platform_support() { return &platform_support_; }
- const RefPtr<TaskRunner>& task_runner() { return task_runner_; }
+ MessageLoop* message_loop() { return message_loop_.get(); }
+ const RefPtr<TaskRunner>& task_runner() {
+ return message_loop_->GetTaskRunner();
+ }
MockMasterProcessDelegate& master_process_delegate() {
return master_process_delegate_;
}
@@ -195,15 +197,14 @@ class ConnectionManagerTest : public testing::Test {
ProcessIdentifier slave_process_identifier =
master->AddSlave(new TestSlaveInfo(slave_name),
platform_channel_pair.PassServerHandle());
- slave->Init(task_runner_.Clone(), slave_process_delegate,
+ slave->Init(task_runner().Clone(), slave_process_delegate,
platform_channel_pair.PassClientHandle());
return slave_process_identifier;
}
private:
embedder::SimplePlatformSupport platform_support_;
- base::MessageLoop message_loop_;
- RefPtr<TaskRunner> task_runner_;
+ std::unique_ptr<MessageLoop> message_loop_;
MockMasterProcessDelegate master_process_delegate_;
MOJO_DISALLOW_COPY_AND_ASSIGN(ConnectionManagerTest);
@@ -252,27 +253,27 @@ TEST_F(ConnectionManagerTest, BasicConnectSlaves) {
// The process manager shouldn't have gotten any notifications yet. (Spin the
// message loop to make sure none were enqueued.)
- base::RunLoop().RunUntilIdle();
+ message_loop()->RunUntilIdle();
EXPECT_EQ(0u, master_process_delegate().on_slave_disconnect_calls());
slave1.Shutdown();
// |OnSlaveDisconnect()| should be called once.
- master_process_delegate().RunUntilNotified();
+ master_process_delegate().RunUntilNotified(message_loop());
EXPECT_EQ(1u, master_process_delegate().on_slave_disconnect_calls());
EXPECT_EQ("slave1", master_process_delegate().last_slave_disconnect_name());
slave2.Shutdown();
// |OnSlaveDisconnect()| should be called again.
- master_process_delegate().RunUntilNotified();
+ master_process_delegate().RunUntilNotified(message_loop());
EXPECT_EQ(2u, master_process_delegate().on_slave_disconnect_calls());
EXPECT_EQ("slave2", master_process_delegate().last_slave_disconnect_name());
master.Shutdown();
// None of the above should result in |OnMasterDisconnect()| being called.
- base::RunLoop().RunUntilIdle();
+ message_loop()->RunUntilIdle();
EXPECT_EQ(0u, slave1_process_delegate.on_master_disconnect_calls());
EXPECT_EQ(0u, slave2_process_delegate.on_master_disconnect_calls());
}
@@ -289,18 +290,18 @@ TEST_F(ConnectionManagerTest, ShutdownMasterBeforeSlave) {
// The process manager shouldn't have gotten any notifications yet. (Spin the
// message loop to make sure none were enqueued.)
- base::RunLoop().RunUntilIdle();
+ message_loop()->RunUntilIdle();
EXPECT_EQ(0u, master_process_delegate().on_slave_disconnect_calls());
master.Shutdown();
// |OnSlaveDisconnect()| should be called.
- master_process_delegate().RunUntilNotified();
+ master_process_delegate().RunUntilNotified(message_loop());
EXPECT_EQ(1u, master_process_delegate().on_slave_disconnect_calls());
EXPECT_EQ("slave", master_process_delegate().last_slave_disconnect_name());
// |OnMasterDisconnect()| should also be (or have been) called.
- slave_process_delegate.RunUntilNotified();
+ slave_process_delegate.RunUntilNotified(message_loop());
EXPECT_EQ(1u, slave_process_delegate.on_master_disconnect_calls());
slave.Shutdown();
@@ -369,7 +370,7 @@ TEST_F(ConnectionManagerTest, ErrorRemovePending) {
// |OnSlaveDisconnect()| should be called. After it's called, this means that
// the disconnect has been detected and handled, including the removal of the
// pending connection.
- master_process_delegate().RunUntilNotified();
+ master_process_delegate().RunUntilNotified(message_loop());
EXPECT_EQ(1u, master_process_delegate().on_slave_disconnect_calls());
ProcessIdentifier peer2 = kInvalidProcessIdentifier;
« no previous file with comments | « mojo/edk/system/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698