| Index: mojo/edk/system/wait_set_dispatcher_unittest.cc
|
| diff --git a/mojo/edk/system/wait_set_dispatcher_unittest.cc b/mojo/edk/system/wait_set_dispatcher_unittest.cc
|
| index 2a42be164523a718a506bcfb3434061b47099145..65d19f9bc6d7d32801d2ef86272b46df2a29046f 100644
|
| --- a/mojo/edk/system/wait_set_dispatcher_unittest.cc
|
| +++ b/mojo/edk/system/wait_set_dispatcher_unittest.cc
|
| @@ -13,6 +13,7 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "mojo/edk/embedder/embedder_internal.h"
|
| #include "mojo/edk/system/core.h"
|
| +#include "mojo/edk/system/message_for_transit.h"
|
| #include "mojo/edk/system/message_pipe_dispatcher.h"
|
| #include "mojo/edk/system/request_context.h"
|
| #include "mojo/edk/system/test_utils.h"
|
| @@ -74,6 +75,40 @@ class WaitSetDispatcherTest : public ::testing::Test {
|
| dispatchers_to_close_.push_back(dispatcher);
|
| }
|
|
|
| + void WriteMessage(MessagePipeDispatcher* dispatcher,
|
| + const void* bytes,
|
| + size_t num_bytes) {
|
| + Core* core = mojo::edk::internal::g_core;
|
| + void* msg;
|
| + ASSERT_EQ(MOJO_RESULT_OK,
|
| + core->CreateMessage(num_bytes, nullptr, 0,
|
| + MOJO_CREATE_MESSAGE_FLAG_NONE, &msg));
|
| + void* buffer;
|
| + ASSERT_EQ(MOJO_RESULT_OK, core->GetMessageBuffer(msg, &buffer));
|
| + memcpy(buffer, bytes, num_bytes);
|
| +
|
| + std::unique_ptr<MessageForTransit> message(
|
| + static_cast<MessageForTransit*>(msg));
|
| + ASSERT_EQ(MOJO_RESULT_OK,
|
| + dispatcher->WriteMessage(std::move(message),
|
| + MOJO_WRITE_MESSAGE_FLAG_NONE));
|
| + }
|
| +
|
| + void ReadMessage(MessagePipeDispatcher* dispatcher,
|
| + void* bytes,
|
| + uint32_t* num_bytes) {
|
| + Core* core = mojo::edk::internal::g_core;
|
| + std::unique_ptr<MessageForTransit> message;
|
| + ASSERT_EQ(MOJO_RESULT_OK,
|
| + dispatcher->ReadMessage(&message, num_bytes, nullptr, 0,
|
| + MOJO_READ_MESSAGE_FLAG_NONE, false));
|
| + void* buffer;
|
| + ASSERT_EQ(MOJO_RESULT_OK,
|
| + core->GetMessageBuffer(static_cast<void*>(message.get()),
|
| + &buffer));
|
| + memcpy(buffer, bytes, *num_bytes);
|
| + }
|
| +
|
| protected:
|
| scoped_refptr<MessagePipeDispatcher> dispatcher0_;
|
| scoped_refptr<MessagePipeDispatcher> dispatcher1_;
|
| @@ -140,9 +175,7 @@ TEST_F(WaitSetDispatcherTest, Basic) {
|
| // Write to |dispatcher1_|, which should make |dispatcher0_| readable.
|
| char buffer[] = "abcd";
|
| w.Init();
|
| - ASSERT_EQ(MOJO_RESULT_OK,
|
| - dispatcher1_->WriteMessage(buffer, sizeof(buffer), nullptr, 0,
|
| - MOJO_WRITE_MESSAGE_FLAG_NONE));
|
| + WriteMessage(dispatcher1_.get(), buffer, sizeof(buffer));
|
| EXPECT_EQ(MOJO_RESULT_OK, w.Wait(MOJO_DEADLINE_INDEFINITE, nullptr));
|
| woken_dispatcher = nullptr;
|
| context = 0;
|
| @@ -187,9 +220,7 @@ TEST_F(WaitSetDispatcherTest, HandleWithoutRemoving) {
|
| // Write to |dispatcher1_|, which should make |dispatcher0_| readable.
|
| char buffer[] = "abcd";
|
| w.Init();
|
| - ASSERT_EQ(MOJO_RESULT_OK,
|
| - dispatcher1_->WriteMessage(buffer, sizeof(buffer), nullptr, 0,
|
| - MOJO_WRITE_MESSAGE_FLAG_NONE));
|
| + WriteMessage(dispatcher1_.get(), buffer, sizeof(buffer));
|
| EXPECT_EQ(MOJO_RESULT_OK, w.Wait(MOJO_DEADLINE_INDEFINITE, nullptr));
|
| woken_dispatcher = nullptr;
|
| context = 0;
|
| @@ -201,9 +232,7 @@ TEST_F(WaitSetDispatcherTest, HandleWithoutRemoving) {
|
| // Read from |dispatcher0_| which should change it's state to non-readable.
|
| char read_buffer[sizeof(buffer) + 5];
|
| uint32_t num_bytes = sizeof(read_buffer);
|
| - ASSERT_EQ(MOJO_RESULT_OK,
|
| - dispatcher0_->ReadMessage(read_buffer, &num_bytes, nullptr,
|
| - nullptr, MOJO_READ_MESSAGE_FLAG_NONE));
|
| + ReadMessage(dispatcher0_.get(), read_buffer, &num_bytes);
|
| EXPECT_EQ(sizeof(buffer), num_bytes);
|
|
|
| // No dispatchers are ready.
|
| @@ -314,9 +343,7 @@ TEST_F(WaitSetDispatcherTest, MultipleReady) {
|
| // Write to |dispatcher1_|, which should make |dispatcher0_| readable.
|
| char buffer[] = "abcd";
|
| w.Init();
|
| - ASSERT_EQ(MOJO_RESULT_OK,
|
| - dispatcher1_->WriteMessage(buffer, sizeof(buffer), nullptr, 0,
|
| - MOJO_WRITE_MESSAGE_FLAG_NONE));
|
| + WriteMessage(dispatcher1_.get(), buffer, sizeof(buffer));
|
| {
|
| Waiter mp_w;
|
| mp_w.Init();
|
|
|