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

Unified Diff: mojo/public/cpp/bindings/tests/handle_passing_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
Index: mojo/public/cpp/bindings/tests/handle_passing_unittest.cc
diff --git a/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc b/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc
index 021ce5a6a511d69f1633695df2614749efc3d3be..9fe28b7ca297835fd860faf41e24f2820c74ab47 100644
--- a/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc
+++ b/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc
@@ -6,6 +6,7 @@
#include <utility>
#include "base/message_loop/message_loop.h"
+#include "base/run_loop.h"
#include "mojo/message_pump/message_pump_mojo.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
@@ -22,26 +23,36 @@ const char kText2[] = "world";
class StringRecorder {
public:
- explicit StringRecorder(std::string* buf) : buf_(buf) {}
- void Run(const String& a) const { *buf_ = a.To<std::string>(); }
+ StringRecorder(std::string* buf, const base::Closure& closure)
+ : buf_(buf), closure_(closure) {}
+ void Run(const String& a) const {
+ *buf_ = a.To<std::string>();
+ closure_.Run();
+ }
private:
std::string* buf_;
+ base::Closure closure_;
};
class ImportedInterfaceImpl : public imported::ImportedInterface {
public:
- explicit ImportedInterfaceImpl(
- InterfaceRequest<imported::ImportedInterface> request)
- : binding_(this, std::move(request)) {}
-
- void DoSomething() override { do_something_count_++; }
+ ImportedInterfaceImpl(
+ InterfaceRequest<imported::ImportedInterface> request,
+ const base::Closure& closure)
+ : binding_(this, std::move(request)), closure_(closure) {}
+
+ void DoSomething() override {
+ do_something_count_++;
+ closure_.Run();
+ }
static int do_something_count() { return do_something_count_; }
private:
static int do_something_count_;
Binding<ImportedInterface> binding_;
+ base::Closure closure_;
};
int ImportedInterfaceImpl::do_something_count_ = 0;
@@ -101,6 +112,12 @@ class SampleFactoryImpl : public sample::Factory {
// DidStuff2().
ASSERT_TRUE(pipe.is_valid());
uint32_t data_size = 0;
+
+ MojoHandleSignalsState state;
+ ASSERT_EQ(MOJO_RESULT_OK,
+ MojoWait(pipe.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
+ MOJO_DEADLINE_INDEFINITE, &state));
+ ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE, state.satisfied_signals);
ASSERT_EQ(MOJO_RESULT_OK,
ReadDataRaw(
pipe.get(), nullptr, &data_size, MOJO_READ_DATA_FLAG_QUERY));
@@ -151,8 +168,12 @@ class HandlePassingTest : public testing::Test {
};
struct DoStuffCallback {
- DoStuffCallback(bool* got_response, std::string* got_text_reply)
- : got_response(got_response), got_text_reply(got_text_reply) {}
+ DoStuffCallback(bool* got_response,
+ std::string* got_text_reply,
+ const base::Closure& closure)
+ : got_response(got_response),
+ got_text_reply(got_text_reply),
+ closure(closure) {}
void Run(sample::ResponsePtr response, const String& text_reply) const {
*got_text_reply = text_reply;
@@ -173,10 +194,12 @@ struct DoStuffCallback {
}
*got_response = true;
+ closure.Run();
}
bool* got_response;
std::string* got_text_reply;
+ base::Closure closure;
};
TEST_F(HandlePassingTest, Basic) {
@@ -190,7 +213,9 @@ TEST_F(HandlePassingTest, Basic) {
EXPECT_TRUE(WriteTextMessage(pipe1.handle1.get(), kText2));
imported::ImportedInterfacePtr imported;
- ImportedInterfaceImpl imported_impl(GetProxy(&imported));
+ base::RunLoop run_loop;
+ ImportedInterfaceImpl imported_impl(GetProxy(&imported),
+ run_loop.QuitClosure());
sample::RequestPtr request(sample::Request::New());
request->x = 1;
@@ -198,13 +223,15 @@ TEST_F(HandlePassingTest, Basic) {
request->obj = std::move(imported);
bool got_response = false;
std::string got_text_reply;
- DoStuffCallback cb(&got_response, &got_text_reply);
+ base::RunLoop run_loop2;
+ DoStuffCallback cb(&got_response, &got_text_reply, run_loop2.QuitClosure());
factory->DoStuff(std::move(request), std::move(pipe0.handle0), cb);
EXPECT_FALSE(*cb.got_response);
int count_before = ImportedInterfaceImpl::do_something_count();
- PumpMessages();
+ run_loop.Run();
+ run_loop2.Run();
EXPECT_TRUE(*cb.got_response);
EXPECT_EQ(kText1, *cb.got_text_reply);
@@ -219,27 +246,34 @@ TEST_F(HandlePassingTest, PassInvalid) {
request->x = 1;
bool got_response = false;
std::string got_text_reply;
- DoStuffCallback cb(&got_response, &got_text_reply);
+ base::RunLoop run_loop;
+ DoStuffCallback cb(&got_response, &got_text_reply, run_loop.QuitClosure());
factory->DoStuff(std::move(request), ScopedMessagePipeHandle(), cb);
EXPECT_FALSE(*cb.got_response);
- PumpMessages();
+ run_loop.Run();
EXPECT_TRUE(*cb.got_response);
}
struct DoStuff2Callback {
- DoStuff2Callback(bool* got_response, std::string* got_text_reply)
- : got_response(got_response), got_text_reply(got_text_reply) {}
+ DoStuff2Callback(bool* got_response,
+ std::string* got_text_reply,
+ const base::Closure& closure)
+ : got_response(got_response),
+ got_text_reply(got_text_reply),
+ closure(closure) {}
void Run(const String& text_reply) const {
*got_response = true;
*got_text_reply = text_reply;
+ closure.Run();
}
bool* got_response;
std::string* got_text_reply;
+ base::Closure closure;
};
// Verifies DataPipeConsumer can be passed and read from.
@@ -268,12 +302,13 @@ TEST_F(HandlePassingTest, DataPipe) {
bool got_response = false;
std::string got_text_reply;
- DoStuff2Callback cb(&got_response, &got_text_reply);
+ base::RunLoop run_loop;
+ DoStuff2Callback cb(&got_response, &got_text_reply, run_loop.QuitClosure());
factory->DoStuff2(std::move(consumer_handle), cb);
EXPECT_FALSE(*cb.got_response);
- PumpMessages();
+ run_loop.Run();
EXPECT_TRUE(*cb.got_response);
EXPECT_EQ(expected_text_reply, *cb.got_text_reply);
@@ -339,13 +374,15 @@ TEST_F(HandlePassingTest, CreateNamedObject) {
factory->CreateNamedObject(GetProxy(&object2));
object2->SetName("object2");
+ base::RunLoop run_loop, run_loop2;
std::string name1;
- object1->GetName(StringRecorder(&name1));
+ object1->GetName(StringRecorder(&name1, run_loop.QuitClosure()));
std::string name2;
- object2->GetName(StringRecorder(&name2));
+ object2->GetName(StringRecorder(&name2, run_loop2.QuitClosure()));
- PumpMessages(); // Yield for results.
+ run_loop.Run();
+ run_loop2.Run();
EXPECT_EQ(std::string("object1"), name1);
EXPECT_EQ(std::string("object2"), name2);
« no previous file with comments | « mojo/public/cpp/bindings/tests/connector_unittest.cc ('k') | mojo/public/cpp/bindings/tests/interface_ptr_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698