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

Unified Diff: mojo/message_pump/message_pump_mojo_unittest.cc

Issue 1552983003: Fix a bunch of mojo_public_*_unittests with the new EDK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments Created 4 years, 12 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 | « mojo/fetcher/data_fetcher_unittest.cc ('k') | mojo/public/c/system/tests/core_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/message_pump/message_pump_mojo_unittest.cc
diff --git a/mojo/message_pump/message_pump_mojo_unittest.cc b/mojo/message_pump/message_pump_mojo_unittest.cc
index 68e40df5eda5aeb6f25659772c426348a2cf2f10..0d370615c8dc48ccd860a612638756b09b9baac5 100644
--- a/mojo/message_pump/message_pump_mojo_unittest.cc
+++ b/mojo/message_pump/message_pump_mojo_unittest.cc
@@ -33,9 +33,29 @@ class CountingMojoHandler : public MessagePumpMojoHandler {
NULL,
MOJO_READ_MESSAGE_FLAG_NONE);
++success_count_;
+ if (success_count_ == success_callback_count_ &&
+ !success_callback_.is_null()) {
+ success_callback_.Run();
+ success_callback_.Reset();
+ }
}
+
+ void set_success_callback(const base::Closure& callback,
+ int success_count) {
+ success_callback_ = callback;
+ success_callback_count_ = success_count;
+ }
+
void OnHandleError(const Handle& handle, MojoResult result) override {
++error_count_;
+ if (!error_callback_.is_null()) {
+ error_callback_.Run();
+ error_callback_.Reset();
+ }
+ }
+
+ void set_error_callback(const base::Closure& callback) {
+ error_callback_ = callback;
}
int success_count() { return success_count_; }
@@ -45,6 +65,11 @@ class CountingMojoHandler : public MessagePumpMojoHandler {
int success_count_;
int error_count_;
+ base::Closure error_callback_;
+ int success_callback_count_;
+
+ base::Closure success_callback_;
+
DISALLOW_COPY_AND_ASSIGN(CountingMojoHandler);
};
@@ -60,6 +85,8 @@ class CountingObserver : public MessagePumpMojo::Observer {
TEST(MessagePumpMojo, RunUntilIdle) {
base::MessageLoop message_loop(MessagePumpMojo::Create());
CountingMojoHandler handler;
+ base::RunLoop run_loop;
+ handler.set_success_callback(run_loop.QuitClosure(), 2);
MessagePipe handles;
MessagePumpMojo::current()->AddHandler(&handler,
handles.handle0.get(),
@@ -69,8 +96,11 @@ TEST(MessagePumpMojo, RunUntilIdle) {
handles.handle1.get(), NULL, 0, NULL, 0, MOJO_WRITE_MESSAGE_FLAG_NONE);
WriteMessageRaw(
handles.handle1.get(), NULL, 0, NULL, 0, MOJO_WRITE_MESSAGE_FLAG_NONE);
- base::RunLoop run_loop;
- run_loop.RunUntilIdle();
+ MojoHandleSignalsState hss;
+ ASSERT_EQ(MOJO_RESULT_OK,
+ MojoWait(handles.handle0.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
+ MOJO_DEADLINE_INDEFINITE, &hss));
+ run_loop.Run();
EXPECT_EQ(2, handler.success_count());
}
@@ -81,6 +111,8 @@ TEST(MessagePumpMojo, Observer) {
MessagePumpMojo::current()->AddObserver(&observer);
CountingMojoHandler handler;
+ base::RunLoop run_loop;
+ handler.set_success_callback(run_loop.QuitClosure(), 1);
MessagePipe handles;
MessagePumpMojo::current()->AddHandler(&handler,
handles.handle0.get(),
@@ -88,17 +120,25 @@ TEST(MessagePumpMojo, Observer) {
base::TimeTicks());
WriteMessageRaw(
handles.handle1.get(), NULL, 0, NULL, 0, MOJO_WRITE_MESSAGE_FLAG_NONE);
- base::RunLoop run_loop;
- run_loop.RunUntilIdle();
+
+ MojoHandleSignalsState hss;
+ ASSERT_EQ(MOJO_RESULT_OK,
+ MojoWait(handles.handle0.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
+ MOJO_DEADLINE_INDEFINITE, &hss));
+ run_loop.Run();
EXPECT_EQ(1, handler.success_count());
EXPECT_EQ(1, observer.will_signal_handler_count);
EXPECT_EQ(1, observer.did_signal_handler_count);
MessagePumpMojo::current()->RemoveObserver(&observer);
+ base::RunLoop run_loop2;
+ handler.set_success_callback(run_loop2.QuitClosure(), 2);
WriteMessageRaw(
handles.handle1.get(), NULL, 0, NULL, 0, MOJO_WRITE_MESSAGE_FLAG_NONE);
- base::RunLoop run_loop2;
- run_loop2.RunUntilIdle();
+ ASSERT_EQ(MOJO_RESULT_OK,
+ MojoWait(handles.handle0.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
+ MOJO_DEADLINE_INDEFINITE, &hss));
+ run_loop2.Run();
EXPECT_EQ(2, handler.success_count());
EXPECT_EQ(1, observer.will_signal_handler_count);
EXPECT_EQ(1, observer.did_signal_handler_count);
@@ -107,16 +147,15 @@ TEST(MessagePumpMojo, Observer) {
TEST(MessagePumpMojo, UnregisterAfterDeadline) {
base::MessageLoop message_loop(MessagePumpMojo::Create());
CountingMojoHandler handler;
+ base::RunLoop run_loop;
+ handler.set_error_callback(run_loop.QuitClosure());
MessagePipe handles;
MessagePumpMojo::current()->AddHandler(
&handler,
handles.handle0.get(),
MOJO_HANDLE_SIGNAL_READABLE,
base::TimeTicks::Now() - base::TimeDelta::FromSeconds(1));
- for (int i = 0; i < 2; ++i) {
- base::RunLoop run_loop;
- run_loop.RunUntilIdle();
- }
+ run_loop.Run();
EXPECT_EQ(1, handler.error_count());
}
« no previous file with comments | « mojo/fetcher/data_fetcher_unittest.cc ('k') | mojo/public/c/system/tests/core_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698