Index: mojo/edk/system/message_pipe_unittest.cc |
diff --git a/mojo/edk/system/message_pipe_unittest.cc b/mojo/edk/system/message_pipe_unittest.cc |
index e6f1ff643793fce31bcc145ba3e8a8fd6e8a5471..8f489508e924663e47bcf63a72f831f2e980dc3d 100644 |
--- a/mojo/edk/system/message_pipe_unittest.cc |
+++ b/mojo/edk/system/message_pipe_unittest.cc |
@@ -100,8 +100,8 @@ |
ASSERT_EQ(MOJO_RESULT_OK, WriteMessage(pipe1_, buffer, sizeof(buffer[0]))); |
MojoHandleSignalsState state; |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, &state)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &state)); |
// Read from port 0. |
buffer[0] = 123; |
@@ -124,8 +124,8 @@ |
buffer[1] = 0; |
ASSERT_EQ(MOJO_RESULT_OK, WriteMessage(pipe0_, buffer, sizeof(buffer[0]))); |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, &state)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &state)); |
// Read from port 1 with buffer size 0 (should get the size of next message). |
// Also test that giving a null buffer is okay when the buffer size is 0. |
@@ -154,8 +154,8 @@ |
ASSERT_EQ(123456789, buffer[0]); |
ASSERT_EQ(456, buffer[1]); |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, &state)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &state)); |
// Read again from port 1. |
buffer[0] = 123; |
@@ -179,8 +179,8 @@ |
MojoClose(pipe0_); |
pipe0_ = MOJO_HANDLE_INVALID; |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe1_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &state)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe1_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
+ MOJO_DEADLINE_INDEFINITE, &state)); |
// Try to write from port 1 (to port 0). |
buffer[0] = 456789012; |
@@ -215,8 +215,8 @@ |
} |
MojoHandleSignalsState state; |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, &state)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &state)); |
// Port 0 shouldn't be empty. |
buffer_size = 0; |
@@ -241,8 +241,8 @@ |
ASSERT_EQ(MOJO_RESULT_OK, WriteMessage(pipe1_, buffer, sizeof(buffer[0]))); |
MojoHandleSignalsState state; |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, &state)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &state)); |
// Read/discard from port 0 (no buffer); get size. |
buffer_size = 0; |
@@ -261,8 +261,8 @@ |
ASSERT_EQ(MOJO_RESULT_OK, |
WriteMessage(pipe1_, buffer, sizeof(buffer[0]))); |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, &state)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &state)); |
// Read from port 0 (buffer big enough). |
buffer[0] = 123; |
@@ -283,8 +283,8 @@ |
buffer[1] = 0; |
ASSERT_EQ(MOJO_RESULT_OK, WriteMessage(pipe1_, buffer, sizeof(buffer[0]))); |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, &state)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &state)); |
// Read/discard from port 0 (buffer too small); get size. |
buffer_size = 1; |
@@ -302,8 +302,8 @@ |
buffer[1] = 0; |
ASSERT_EQ(MOJO_RESULT_OK, WriteMessage(pipe1_, buffer, sizeof(buffer[0]))); |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, &state)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &state)); |
// Discard from port 0. |
buffer_size = 1; |
@@ -323,27 +323,41 @@ |
const uint32_t kBufferSize = static_cast<uint32_t>(sizeof(buffer)); |
uint32_t buffer_size; |
- // Always writable (until the other port is closed). Not yet readable. Peer |
- // not closed. |
- hss = GetSignalsState(pipe0_); |
+ // Always writable (until the other port is closed). |
+ hss = MojoHandleSignalsState(); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe0_, MOJO_HANDLE_SIGNAL_WRITABLE, 0, |
+ &hss)); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals); |
ASSERT_EQ(kAllSignals, hss.satisfiable_signals); |
hss = MojoHandleSignalsState(); |
+ // Not yet readable. |
+ ASSERT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, |
+ MojoWait(pipe0_, MOJO_HANDLE_SIGNAL_READABLE, 0, &hss)); |
+ ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals); |
+ ASSERT_EQ(kAllSignals, hss.satisfiable_signals); |
+ |
+ // The peer is not closed. |
+ hss = MojoHandleSignalsState(); |
+ ASSERT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, |
+ MojoWait(pipe0_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, 0, &hss)); |
+ ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals); |
+ ASSERT_EQ(kAllSignals, hss.satisfiable_signals); |
+ |
// Write from port 0 (to port 1), to make port 1 readable. |
buffer[0] = 123456789; |
ASSERT_EQ(MOJO_RESULT_OK, WriteMessage(pipe0_, buffer, kBufferSize)); |
// Port 1 should already be readable now. |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, &hss)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &hss)); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE, |
hss.satisfied_signals); |
ASSERT_EQ(kAllSignals, hss.satisfiable_signals); |
// ... and still writable. |
hss = MojoHandleSignalsState(); |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe1_, MOJO_HANDLE_SIGNAL_WRITABLE, &hss)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe1_, MOJO_HANDLE_SIGNAL_WRITABLE, |
+ MOJO_DEADLINE_INDEFINITE, &hss)); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE, |
hss.satisfied_signals); |
ASSERT_EQ(kAllSignals, hss.satisfiable_signals); |
@@ -354,8 +368,8 @@ |
// Port 1 should be signaled with peer closed. |
hss = MojoHandleSignalsState(); |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe1_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &hss)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe1_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
+ MOJO_DEADLINE_INDEFINITE, &hss)); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
hss.satisfied_signals); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
@@ -365,7 +379,8 @@ |
hss = MojoHandleSignalsState(); |
ASSERT_EQ(MOJO_RESULT_FAILED_PRECONDITION, |
- WaitForSignals(pipe1_, MOJO_HANDLE_SIGNAL_WRITABLE, &hss)); |
+ MojoWait(pipe1_, MOJO_HANDLE_SIGNAL_WRITABLE, |
+ MOJO_DEADLINE_INDEFINITE, &hss)); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
hss.satisfied_signals); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
@@ -373,8 +388,8 @@ |
// But it should still be readable. |
hss = MojoHandleSignalsState(); |
- ASSERT_EQ(MOJO_RESULT_OK, |
- WaitForSignals(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, &hss)); |
+ ASSERT_EQ(MOJO_RESULT_OK, MojoWait(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &hss)); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
hss.satisfied_signals); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
@@ -389,7 +404,8 @@ |
// Now port 1 should no longer be readable. |
hss = MojoHandleSignalsState(); |
ASSERT_EQ(MOJO_RESULT_FAILED_PRECONDITION, |
- WaitForSignals(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, &hss)); |
+ MojoWait(pipe1_, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, &hss)); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals); |
} |
@@ -437,7 +453,9 @@ |
EXPECT_EQ(MOJO_RESULT_OK, |
MojoWriteMessageNew(a, message, MOJO_WRITE_MESSAGE_FLAG_NONE)); |
- EXPECT_EQ(MOJO_RESULT_OK, WaitForSignals(b, MOJO_HANDLE_SIGNAL_READABLE)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ MojoWait(b, MOJO_HANDLE_SIGNAL_READABLE, MOJO_DEADLINE_INDEFINITE, |
+ nullptr)); |
uint32_t num_bytes = 0; |
uint32_t num_handles = 0; |
EXPECT_EQ(MOJO_RESULT_OK, |
@@ -471,7 +489,8 @@ |
WriteMessageWithHandles(h, "", handles, kPingPongHandlesPerIteration); |
} |
- EXPECT_EQ(MOJO_RESULT_OK, WaitForSignals(h, MOJO_HANDLE_SIGNAL_READABLE)); |
+ EXPECT_EQ(MOJO_RESULT_OK, MojoWait(h, MOJO_HANDLE_SIGNAL_READABLE, |
+ MOJO_DEADLINE_INDEFINITE, nullptr)); |
char msg[4]; |
uint32_t num_bytes = 4; |
EXPECT_EQ(MOJO_RESULT_OK, ReadMessage(h, msg, &num_bytes)); |
@@ -656,7 +675,9 @@ |
EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(b)); |
EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(c)); |
- EXPECT_EQ(MOJO_RESULT_OK, WaitForSignals(d, MOJO_HANDLE_SIGNAL_PEER_CLOSED)); |
+ EXPECT_EQ(MOJO_RESULT_OK, MojoWait(d, MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
+ MOJO_DEADLINE_INDEFINITE, nullptr)); |
+ |
EXPECT_EQ(MOJO_RESULT_OK, MojoClose(d)); |
} |
@@ -679,7 +700,9 @@ |
EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(c)); |
EXPECT_EQ(kTestMessage, ReadMessage(d)); |
- EXPECT_EQ(MOJO_RESULT_OK, WaitForSignals(d, MOJO_HANDLE_SIGNAL_PEER_CLOSED)); |
+ EXPECT_EQ(MOJO_RESULT_OK, MojoWait(d, MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
+ MOJO_DEADLINE_INDEFINITE, nullptr)); |
+ |
EXPECT_EQ(MOJO_RESULT_OK, MojoClose(d)); |
} |