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 6776a4f7a785bd81cd92fb777e10db368ba2a817..0526d9f50f7896651ca44d970add7ec54a2b05cc 100644 |
--- a/mojo/edk/system/data_pipe_unittest.cc |
+++ b/mojo/edk/system/data_pipe_unittest.cc |
@@ -367,6 +367,14 @@ TEST_F(DataPipeTest, BasicProducerWaiting) { |
ASSERT_EQ(123, elements[0]); |
ASSERT_EQ(-1, elements[1]); |
+ // Wait until we can write. |
+ hss = MojoHandleSignalsState(); |
+ ASSERT_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); |
+ |
// Try writing, using a two-phase write. |
void* buffer = nullptr; |
num_bytes = static_cast<uint32_t>(3u * sizeof(elements[0])); |
@@ -392,6 +400,14 @@ TEST_F(DataPipeTest, BasicProducerWaiting) { |
ASSERT_EQ(MOJO_RESULT_OK, EndReadData(static_cast<uint32_t>( |
1u * sizeof(elements[0])))); |
+ // Wait until we can write. |
+ hss = MojoHandleSignalsState(); |
+ ASSERT_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); |
+ |
// Write one element. |
elements[0] = 123; |
num_bytes = static_cast<uint32_t>(1u * sizeof(elements[0])); |
@@ -562,7 +578,7 @@ TEST_F(DataPipeTest, BasicConsumerWaiting) { |
ASSERT_EQ(MOJO_RESULT_OK, |
MojoWait(consumer_, MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
MOJO_DEADLINE_INDEFINITE, &hss)); |
- ASSERT_TRUE((hss.satisfied_signals & MOJO_HANDLE_SIGNAL_PEER_CLOSED) != 0); |
+ ASSERT_NE(0u, hss.satisfied_signals & MOJO_HANDLE_SIGNAL_PEER_CLOSED); |
ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
hss.satisfiable_signals); |