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