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

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

Issue 741503003: Adding MOJO_HANDLE_SIGNAL_PEER_CLOSED to be notified when a peer is closed. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 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
Index: mojo/edk/system/remote_message_pipe_unittest.cc
diff --git a/mojo/edk/system/remote_message_pipe_unittest.cc b/mojo/edk/system/remote_message_pipe_unittest.cc
index e3a320e159749c5d8ea876e78676431d84ca507f..98bcf716ad280d70313fae808fdaab59cd85b469 100644
--- a/mojo/edk/system/remote_message_pipe_unittest.cc
+++ b/mojo/edk/system/remote_message_pipe_unittest.cc
@@ -41,6 +41,10 @@ namespace mojo {
namespace system {
namespace {
+const MojoHandleSignals kAllSignals = MOJO_HANDLE_SIGNAL_READABLE |
+ MOJO_HANDLE_SIGNAL_WRITABLE |
+ MOJO_HANDLE_SIGNAL_CLOSED;
+
class RemoteMessagePipeTest : public testing::Test {
public:
RemoteMessagePipeTest() : io_thread_(base::TestIOThread::kAutoStart) {}
@@ -204,8 +208,7 @@ TEST_F(RemoteMessagePipeTest, Basic) {
mp1->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from MP 1, port 1.
EXPECT_EQ(MOJO_RESULT_OK,
@@ -233,8 +236,7 @@ TEST_F(RemoteMessagePipeTest, Basic) {
mp0->RemoveWaiter(0, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
buffer_size = static_cast<uint32_t>(sizeof(buffer));
EXPECT_EQ(MOJO_RESULT_OK,
@@ -261,8 +263,8 @@ TEST_F(RemoteMessagePipeTest, Basic) {
hss = HandleSignalsState();
mp1->RemoveWaiter(1, &waiter, &hss);
}
- EXPECT_EQ(0u, hss.satisfied_signals);
- EXPECT_EQ(0u, hss.satisfiable_signals);
+ EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfied_signals);
+ EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfiable_signals);
// And MP 1, port 1.
mp1->Close(1);
@@ -314,8 +316,7 @@ TEST_F(RemoteMessagePipeTest, Multiplex) {
mp1->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
ChannelEndpointId received_id;
buffer_size = static_cast<uint32_t>(sizeof(received_id));
@@ -349,8 +350,7 @@ TEST_F(RemoteMessagePipeTest, Multiplex) {
mp3->RemoveWaiter(0, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Make sure there's nothing on MP 0, port 0 or MP 1, port 1 or MP 2, port 0.
buffer_size = static_cast<uint32_t>(sizeof(buffer));
@@ -396,8 +396,7 @@ TEST_F(RemoteMessagePipeTest, Multiplex) {
mp1->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals | MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfiable_signals);
// Make sure there's nothing on the other ports.
buffer_size = static_cast<uint32_t>(sizeof(buffer));
@@ -606,8 +605,7 @@ TEST_F(RemoteMessagePipeTest, HandlePassing) {
mp1->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from MP 1, port 1.
char read_buffer[100] = {0};
@@ -651,8 +649,7 @@ TEST_F(RemoteMessagePipeTest, HandlePassing) {
dispatcher->RemoveWaiter(&waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from the dispatcher.
memset(read_buffer, 0, sizeof(read_buffer));
@@ -682,8 +679,7 @@ TEST_F(RemoteMessagePipeTest, HandlePassing) {
local_mp->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from "local_mp", port 1.
memset(read_buffer, 0, sizeof(read_buffer));
@@ -721,8 +717,7 @@ TEST_F(RemoteMessagePipeTest, HandlePassingHalfClosed) {
hss = local_mp->GetHandleSignalsState(0);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Write to the other end (|local_mp|, port 1), and then close it.
EXPECT_EQ(
MOJO_RESULT_OK,
@@ -731,8 +726,7 @@ TEST_F(RemoteMessagePipeTest, HandlePassingHalfClosed) {
hss = local_mp->GetHandleSignalsState(0);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Then the second message....
EXPECT_EQ(
MOJO_RESULT_OK,
@@ -741,8 +735,7 @@ TEST_F(RemoteMessagePipeTest, HandlePassingHalfClosed) {
hss = local_mp->GetHandleSignalsState(0);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Then close it.
local_mp->Close(1);
@@ -786,8 +779,7 @@ TEST_F(RemoteMessagePipeTest, HandlePassingHalfClosed) {
mp1->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from MP 1, port 1.
char read_buffer[100] = {0};
@@ -811,8 +803,10 @@ TEST_F(RemoteMessagePipeTest, HandlePassingHalfClosed) {
// |dispatcher| should already be readable and not writable.
hss = dispatcher->GetHandleSignalsState();
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
+ EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
+ hss.satisfied_signals);
+ EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
+ hss.satisfiable_signals);
// So read from it.
memset(read_buffer, 0, sizeof(read_buffer));
read_buffer_size = static_cast<uint32_t>(sizeof(read_buffer));
@@ -824,8 +818,10 @@ TEST_F(RemoteMessagePipeTest, HandlePassingHalfClosed) {
EXPECT_STREQ(kHello, read_buffer);
// It should still be readable.
hss = dispatcher->GetHandleSignalsState();
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
+ EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
+ hss.satisfied_signals);
+ EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
+ hss.satisfiable_signals);
// So read from it.
memset(read_buffer, 0, sizeof(read_buffer));
read_buffer_size = static_cast<uint32_t>(sizeof(read_buffer));
@@ -837,8 +833,8 @@ TEST_F(RemoteMessagePipeTest, HandlePassingHalfClosed) {
EXPECT_STREQ(kWorld, read_buffer);
// Now it should no longer be readable.
hss = dispatcher->GetHandleSignalsState();
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_NONE, hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_NONE, hss.satisfiable_signals);
+ EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfied_signals);
+ EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfiable_signals);
// Close everything that belongs to us.
mp0->Close(0);
@@ -917,8 +913,7 @@ TEST_F(RemoteMessagePipeTest, MAYBE_SharedBufferPassing) {
mp1->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from MP 1, port 1.
char read_buffer[100] = {0};
@@ -1037,8 +1032,7 @@ TEST_F(RemoteMessagePipeTest, MAYBE_PlatformHandlePassing) {
mp1->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from MP 1, port 1.
char read_buffer[100] = {0};
@@ -1175,8 +1169,7 @@ TEST_F(RemoteMessagePipeTest, PassMessagePipeHandleAcrossAndBack) {
mp1->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from MP 1, port 1.
char read_buffer[100] = {0};
@@ -1235,8 +1228,7 @@ TEST_F(RemoteMessagePipeTest, PassMessagePipeHandleAcrossAndBack) {
mp0->RemoveWaiter(0, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from MP 0, port 0.
read_buffer_size = static_cast<uint32_t>(sizeof(read_buffer));
@@ -1276,8 +1268,7 @@ TEST_F(RemoteMessagePipeTest, PassMessagePipeHandleAcrossAndBack) {
dispatcher->RemoveWaiter(&waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from the dispatcher.
memset(read_buffer, 0, sizeof(read_buffer));
@@ -1307,8 +1298,7 @@ TEST_F(RemoteMessagePipeTest, PassMessagePipeHandleAcrossAndBack) {
local_mp->RemoveWaiter(1, &waiter, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- hss.satisfiable_signals);
+ EXPECT_EQ(kAllSignals, hss.satisfiable_signals);
// Read from "local_mp", port 1.
memset(read_buffer, 0, sizeof(read_buffer));

Powered by Google App Engine
This is Rietveld 408576698