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

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

Issue 2741033003: Mojo EDK: Introduce MojoQueryHandleSignalsState API (Closed)
Patch Set: fix stupid bad DCHECK Created 3 years, 9 months 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
« no previous file with comments | « mojo/edk/system/core.cc ('k') | mojo/edk/system/handle_signals_state.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
« no previous file with comments | « mojo/edk/system/core.cc ('k') | mojo/edk/system/handle_signals_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698