| Index: mojo/edk/system/data_pipe_unittest.cc
|
| diff --git a/mojo/edk/system/data_pipe_unittest.cc b/mojo/edk/system/data_pipe_unittest.cc
|
| index b04bebd65b5a3af0cf9a77edd3afd1c3dc74ed50..114749628a363ce2a11dbf4662aeaed443ccacd7 100644
|
| --- a/mojo/edk/system/data_pipe_unittest.cc
|
| +++ b/mojo/edk/system/data_pipe_unittest.cc
|
| @@ -162,7 +162,8 @@
|
| // Now wait for the other side to become readable.
|
| MojoHandleSignalsState state;
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &state));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &state));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| state.satisfied_signals);
|
|
|
| @@ -248,7 +249,8 @@
|
|
|
| // Wait.
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -335,11 +337,18 @@
|
| Create(&options);
|
| MojoHandleSignalsState hss;
|
|
|
| - // Never readable. Already writable.
|
| - hss = GetSignalsState(producer_);
|
| + // Never readable.
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_READABLE, 0, &hss));
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| hss.satisfiable_signals);
|
| +
|
| + // Already writable.
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_OK,
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &hss));
|
|
|
| // Write two elements.
|
| int32_t elements[2] = {123, 456};
|
| @@ -349,7 +358,8 @@
|
|
|
| // Wait for data to become available to the consumer.
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -409,7 +419,11 @@
|
| // It should now be never-writable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(producer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &hss));
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &hss));
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
|
| }
|
| @@ -430,7 +444,8 @@
|
| // It should be signaled.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(producer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &hss));
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
|
| }
|
| @@ -451,7 +466,8 @@
|
| // It should be signaled.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
|
| }
|
| @@ -469,7 +485,8 @@
|
| // Never writable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_WRITABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_WRITABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| @@ -483,7 +500,8 @@
|
| // Wait for readability.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -498,7 +516,8 @@
|
| // Should still be readable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| @@ -515,7 +534,8 @@
|
| // Should still be readable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| @@ -539,7 +559,8 @@
|
| // Waiting should now succeed.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -552,7 +573,8 @@
|
| // Should still be readable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_TRUE(hss.satisfied_signals & (MOJO_HANDLE_SIGNAL_READABLE |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -562,7 +584,8 @@
|
| // Wait for the peer closed signal.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE |
|
| MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| hss.satisfied_signals);
|
| @@ -582,7 +605,8 @@
|
| // Should be never-readable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, 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);
|
| }
|
| @@ -601,10 +625,11 @@
|
| EXPECT_EQ(MOJO_RESULT_OK, WriteData(elements, &num_bytes, true));
|
|
|
| // The consumer handle should appear to be readable and have new data.
|
| + EXPECT_EQ(MOJO_RESULT_OK, MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, nullptr));
|
| EXPECT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE));
|
| - EXPECT_TRUE(GetSignalsState(consumer_).satisfied_signals &
|
| - MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE);
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, nullptr));
|
|
|
| // Now try to read a minimum of 6 elements.
|
| int32_t read_elements[6];
|
| @@ -613,30 +638,35 @@
|
| MojoReadData(consumer_, read_elements, &num_read_bytes,
|
| MOJO_READ_DATA_FLAG_ALL_OR_NONE));
|
|
|
| - // The consumer should still appear to be readable but not with new data.
|
| - EXPECT_TRUE(GetSignalsState(consumer_).satisfied_signals &
|
| - MOJO_HANDLE_SIGNAL_READABLE);
|
| - EXPECT_FALSE(GetSignalsState(consumer_).satisfied_signals &
|
| - MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE);
|
| + // The consumer should still appear to be readable, but not with new data.
|
| + EXPECT_EQ(MOJO_RESULT_OK,
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE, 0, nullptr));
|
| + EXPECT_EQ(
|
| + MOJO_RESULT_DEADLINE_EXCEEDED,
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE, 0, nullptr));
|
|
|
| // Write four more elements.
|
| EXPECT_EQ(MOJO_RESULT_OK, WriteData(elements, &num_bytes, true));
|
| EXPECT_EQ(MOJO_RESULT_OK, WriteData(elements, &num_bytes, true));
|
|
|
| - // The consumer handle should once again appear to be readable.
|
| + // The consumer handle should once again appear to be readable with new data.
|
| + EXPECT_EQ(MOJO_RESULT_OK, MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, nullptr));
|
| EXPECT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE));
|
| -
|
| - // Try again to read a minimum of 6 elements. Should succeed this time.
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, nullptr));
|
| +
|
| + // Read should succeed this time.
|
| EXPECT_EQ(MOJO_RESULT_OK,
|
| MojoReadData(consumer_, read_elements, &num_read_bytes,
|
| MOJO_READ_DATA_FLAG_ALL_OR_NONE));
|
|
|
| - // And now the consumer is unreadable.
|
| - EXPECT_FALSE(GetSignalsState(consumer_).satisfied_signals &
|
| - MOJO_HANDLE_SIGNAL_READABLE);
|
| - EXPECT_FALSE(GetSignalsState(consumer_).satisfied_signals &
|
| - MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE);
|
| + // And once again the consumer is unreadable.
|
| + EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE, 0, nullptr));
|
| + EXPECT_EQ(
|
| + MOJO_RESULT_DEADLINE_EXCEEDED,
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE, 0, nullptr));
|
| }
|
|
|
| // Test with two-phase APIs and also closing the producer with an active
|
| @@ -667,7 +697,8 @@
|
| // Wait for readability.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -688,7 +719,8 @@
|
| // Should still be readable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| @@ -711,7 +743,8 @@
|
| // Should be never-readable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, 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);
|
| }
|
| @@ -728,7 +761,9 @@
|
| MojoHandleSignalsState hss;
|
|
|
| // It should be writable.
|
| - hss = GetSignalsState(producer_);
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_OK,
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &hss));
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| hss.satisfiable_signals);
|
| @@ -740,13 +775,17 @@
|
| EXPECT_GE(num_bytes, static_cast<uint32_t>(1u * sizeof(int32_t)));
|
|
|
| // At this point, it shouldn't be writable.
|
| - hss = GetSignalsState(producer_);
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &hss));
|
| ASSERT_EQ(0u, hss.satisfied_signals);
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| hss.satisfiable_signals);
|
|
|
| // It shouldn't be readable yet either (we'll wait later).
|
| - hss = GetSignalsState(consumer_);
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE, 0, &hss));
|
| ASSERT_EQ(0u, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| @@ -756,7 +795,9 @@
|
| ASSERT_EQ(MOJO_RESULT_OK, EndWriteData(1u * sizeof(int32_t)));
|
|
|
| // It should immediately be writable again.
|
| - hss = GetSignalsState(producer_);
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_OK,
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &hss));
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| hss.satisfiable_signals);
|
| @@ -764,7 +805,8 @@
|
| // It should become readable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -782,7 +824,8 @@
|
| // It should be readable.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -800,13 +843,17 @@
|
| ASSERT_EQ(static_cast<uint32_t>(1u * sizeof(int32_t)), num_bytes);
|
|
|
| // At this point, it should still be writable.
|
| - hss = GetSignalsState(producer_);
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_OK,
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &hss));
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| hss.satisfiable_signals);
|
|
|
| // But not readable.
|
| - hss = GetSignalsState(consumer_);
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE, 0, &hss));
|
| ASSERT_EQ(0u, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| @@ -816,7 +863,9 @@
|
| ASSERT_EQ(MOJO_RESULT_OK, EndReadData(0u));
|
|
|
| // It should be readable again.
|
| - hss = GetSignalsState(consumer_);
|
| + hss = MojoHandleSignalsState();
|
| + ASSERT_EQ(MOJO_RESULT_OK,
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE, 0, &hss));
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| @@ -862,7 +911,8 @@
|
| // of data to become available.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE |
|
| @@ -952,7 +1002,8 @@
|
| // Wait.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| @@ -1016,7 +1067,8 @@
|
|
|
| // Wait for data.
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_TRUE(hss.satisfied_signals & MOJO_HANDLE_SIGNAL_READABLE);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| @@ -1043,7 +1095,8 @@
|
| while (total_num_bytes < 90) {
|
| // Wait to write.
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(producer_, MOJO_HANDLE_SIGNAL_WRITABLE, &hss));
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_WRITABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| ASSERT_EQ(hss.satisfied_signals, MOJO_HANDLE_SIGNAL_WRITABLE);
|
| ASSERT_EQ(hss.satisfiable_signals,
|
| MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED);
|
| @@ -1178,7 +1231,8 @@
|
| // TODO(vtl): (See corresponding TODO in AllOrNone.)
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -1198,7 +1252,8 @@
|
| // Wait for producer to know that the consumer is closed.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(producer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &hss));
|
| + MojoWait(producer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
|
| ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
|
|
|
| @@ -1268,7 +1323,8 @@
|
| // must also know about all the data that was sent.)
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| @@ -1328,7 +1384,8 @@
|
| // Wait for the data.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -1354,7 +1411,8 @@
|
| // must also have received the extra data).
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| @@ -1441,7 +1499,8 @@
|
| // TODO(vtl): (See corresponding TODO in AllOrNone.)
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -1510,7 +1569,8 @@
|
| // Wait for the data.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -1534,8 +1594,8 @@
|
| MojoWriteMessage(pipe0, nullptr, 0, &producer_, 1,
|
| MOJO_WRITE_MESSAGE_FLAG_NONE));
|
| producer_ = MOJO_HANDLE_INVALID;
|
| - 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));
|
| uint32_t num_handles = 1;
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| MojoReadMessage(pipe1, nullptr, 0, &producer_, &num_handles,
|
| @@ -1552,7 +1612,8 @@
|
| // Wait for it.
|
| hss = MojoHandleSignalsState();
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| @@ -1592,7 +1653,8 @@
|
| // Now wait for the other side to become readable and to see the peer closed.
|
| MojoHandleSignalsState state;
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &state));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &state));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| state.satisfied_signals);
|
| @@ -1609,8 +1671,8 @@
|
| MojoWriteMessage(pipe0, nullptr, 0, &consumer_, 1,
|
| MOJO_WRITE_MESSAGE_FLAG_NONE));
|
| consumer_ = MOJO_HANDLE_INVALID;
|
| - 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));
|
| uint32_t num_handles = 1;
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| MojoReadMessage(pipe1, nullptr, 0, &consumer_, &num_handles,
|
| @@ -1618,7 +1680,8 @@
|
| ASSERT_EQ(num_handles, 1u);
|
|
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, &state));
|
| + MojoWait(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, &state));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
|
| MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE,
|
| state.satisfied_signals);
|
| @@ -1653,8 +1716,8 @@
|
| }
|
|
|
| MojoHandleSignalsState hss = MojoHandleSignalsState();
|
| - EXPECT_EQ(MOJO_RESULT_OK, test::MojoTestBase::WaitForSignals(
|
| - producer, MOJO_HANDLE_SIGNAL_WRITABLE, &hss));
|
| + EXPECT_EQ(MOJO_RESULT_OK, MojoWait(producer, MOJO_HANDLE_SIGNAL_WRITABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| hss.satisfiable_signals);
|
| @@ -1691,8 +1754,8 @@
|
| }
|
|
|
| MojoHandleSignalsState hss = MojoHandleSignalsState();
|
| - EXPECT_EQ(MOJO_RESULT_OK, test::MojoTestBase::WaitForSignals(
|
| - consumer, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + EXPECT_EQ(MOJO_RESULT_OK, MojoWait(consumer, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| // Peer could have become closed while we're still waiting for data.
|
| EXPECT_TRUE(MOJO_HANDLE_SIGNAL_READABLE & hss.satisfied_signals);
|
| EXPECT_TRUE(hss.satisfiable_signals & MOJO_HANDLE_SIGNAL_READABLE);
|
| @@ -1751,8 +1814,8 @@
|
| // Receive the consumer from the other side.
|
| producer_ = MOJO_HANDLE_INVALID;
|
| MojoHandleSignalsState hss = MojoHandleSignalsState();
|
| - ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(server_mp, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + ASSERT_EQ(MOJO_RESULT_OK, MojoWait(server_mp, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| MojoHandle handles[2];
|
| uint32_t num_handles = arraysize(handles);
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| @@ -1781,8 +1844,8 @@
|
| // Receive the data pipe from the other side.
|
| MojoHandle consumer = MOJO_HANDLE_INVALID;
|
| MojoHandleSignalsState hss = MojoHandleSignalsState();
|
| - ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(client_mp, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + ASSERT_EQ(MOJO_RESULT_OK, MojoWait(client_mp, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| MojoHandle handles[2];
|
| uint32_t num_handles = arraysize(handles);
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| @@ -1817,8 +1880,8 @@
|
| // Receive the producer from the other side.
|
| MojoHandle producer = MOJO_HANDLE_INVALID;
|
| hss = MojoHandleSignalsState();
|
| - ASSERT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(client_mp, MOJO_HANDLE_SIGNAL_READABLE, &hss));
|
| + ASSERT_EQ(MOJO_RESULT_OK, MojoWait(client_mp, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, &hss));
|
| num_handles = arraysize(handles);
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| MojoReadMessage(client_mp, nullptr, 0, handles, &num_handles,
|
| @@ -1858,7 +1921,8 @@
|
| std::string expected_message = ReadMessageWithHandles(h, &c, 1);
|
|
|
| // Wait for the consumer to become readable.
|
| - EXPECT_EQ(MOJO_RESULT_OK, WaitForSignals(c, MOJO_HANDLE_SIGNAL_READABLE));
|
| + EXPECT_EQ(MOJO_RESULT_OK, MojoWait(c, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, nullptr));
|
|
|
| // Drain the consumer and expect to find the given message.
|
| uint32_t num_bytes = static_cast<uint32_t>(expected_message.size());
|
| @@ -1925,7 +1989,8 @@
|
| std::string expected_message = ReadMessageWithHandles(child, &c, 1);
|
|
|
| // Wait for the consumer to become readable.
|
| - EXPECT_EQ(MOJO_RESULT_OK, WaitForSignals(c, MOJO_HANDLE_SIGNAL_READABLE));
|
| + EXPECT_EQ(MOJO_RESULT_OK, MojoWait(c, MOJO_HANDLE_SIGNAL_READABLE,
|
| + MOJO_DEADLINE_INDEFINITE, nullptr));
|
|
|
| // Drain the consumer and expect to find the given message.
|
| uint32_t num_bytes = static_cast<uint32_t>(expected_message.size());
|
| @@ -1952,13 +2017,15 @@
|
| MojoHandle* producers = &handles[0];
|
| MojoHandle* consumers = &handles[3];
|
|
|
| - // Wait on producer 0
|
| + // Wait on producer 0 using MojoWait.
|
| EXPECT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(producers[0], MOJO_HANDLE_SIGNAL_PEER_CLOSED));
|
| -
|
| - // Wait on consumer 0
|
| + MojoWait(producers[0], MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, nullptr));
|
| +
|
| + // Wait on consumer 0 using MojoWait.
|
| EXPECT_EQ(MOJO_RESULT_OK,
|
| - WaitForSignals(consumers[0], MOJO_HANDLE_SIGNAL_PEER_CLOSED));
|
| + MojoWait(consumers[0], MOJO_HANDLE_SIGNAL_PEER_CLOSED,
|
| + MOJO_DEADLINE_INDEFINITE, nullptr));
|
|
|
| base::MessageLoop message_loop;
|
|
|
|
|