| Index: mojo/edk/system/local_data_pipe_unittest.cc
|
| diff --git a/mojo/edk/system/local_data_pipe_unittest.cc b/mojo/edk/system/local_data_pipe_unittest.cc
|
| index 9ba6b21f33cec38b32b086a9dfbe23fde5dcea00..bb9a8659de8de0cb7fed0322f8564f990a4f6294 100644
|
| --- a/mojo/edk/system/local_data_pipe_unittest.cc
|
| +++ b/mojo/edk/system/local_data_pipe_unittest.cc
|
| @@ -239,7 +239,8 @@ TEST(LocalDataPipeTest, BasicProducerWaiting) {
|
| MOJO_RESULT_FAILED_PRECONDITION,
|
| dp->ProducerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 12, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Already writable.
|
| waiter.Init();
|
| @@ -266,7 +267,8 @@ TEST(LocalDataPipeTest, BasicProducerWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ProducerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Peek one element.
|
| elements[0] = -1;
|
| @@ -289,7 +291,8 @@ TEST(LocalDataPipeTest, BasicProducerWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ProducerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Do it again.
|
| waiter.Init();
|
| @@ -314,7 +317,8 @@ TEST(LocalDataPipeTest, BasicProducerWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ProducerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Try writing, using a two-phase write.
|
| void* buffer = nullptr;
|
| @@ -357,7 +361,8 @@ TEST(LocalDataPipeTest, BasicProducerWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ProducerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Write one element.
|
| elements[0] = 123;
|
| @@ -381,8 +386,8 @@ TEST(LocalDataPipeTest, BasicProducerWaiting) {
|
| EXPECT_EQ(12u, context);
|
| hss = HandleSignalsState();
|
| dp->ProducerRemoveWaiter(&waiter, &hss);
|
| - EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(0u, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfied_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfiable_signals);
|
|
|
| dp->ProducerClose();
|
| }
|
| @@ -411,7 +416,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| MOJO_RESULT_FAILED_PRECONDITION,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE, 12, &hss));
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Not yet readable.
|
| waiter.Init();
|
| @@ -422,7 +428,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ConsumerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Write two elements.
|
| int32_t elements[2] = {123, 456};
|
| @@ -438,7 +445,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 56, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Discard one element.
|
| num_bytes = static_cast<uint32_t>(1u * sizeof(elements[0]));
|
| @@ -453,7 +461,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 78, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Peek one element.
|
| elements[0] = -1;
|
| @@ -473,7 +482,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 78, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Read one element.
|
| elements[0] = -1;
|
| @@ -506,7 +516,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ConsumerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Close the producer.
|
| dp->ProducerClose();
|
| @@ -517,8 +528,10 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| EXPECT_EQ(
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 12, &hss));
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfied_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Read one element.
|
| elements[0] = -1;
|
| @@ -537,8 +550,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| EXPECT_EQ(
|
| MOJO_RESULT_FAILED_PRECONDITION,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 34, &hss));
|
| - EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(0u, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfied_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfiable_signals);
|
|
|
| dp->ConsumerClose();
|
| }
|
| @@ -574,7 +587,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 12, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Read one element.
|
| // Request two in all-or-none mode, but only read one.
|
| @@ -597,7 +611,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 34, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Read one element.
|
| // Request three, but not in all-or-none mode.
|
| @@ -627,8 +642,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) {
|
| EXPECT_EQ(56u, context);
|
| hss = HandleSignalsState();
|
| dp->ConsumerRemoveWaiter(&waiter, &hss);
|
| - EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(0u, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfied_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_CLOSED, hss.satisfiable_signals);
|
|
|
| dp->ConsumerClose();
|
| }
|
| @@ -657,7 +672,8 @@ TEST(LocalDataPipeTest, BasicTwoPhaseWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ProducerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| uint32_t num_bytes = static_cast<uint32_t>(1u * sizeof(int32_t));
|
| void* write_ptr = nullptr;
|
| @@ -676,7 +692,8 @@ TEST(LocalDataPipeTest, BasicTwoPhaseWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ProducerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // It shouldn't be readable yet either.
|
| waiter.Init();
|
| @@ -687,7 +704,8 @@ TEST(LocalDataPipeTest, BasicTwoPhaseWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ConsumerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| static_cast<int32_t*>(write_ptr)[0] = 123;
|
| EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerEndWriteData(
|
| @@ -700,7 +718,8 @@ TEST(LocalDataPipeTest, BasicTwoPhaseWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ProducerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE, 3, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // And readable.
|
| waiter.Init();
|
| @@ -709,7 +728,8 @@ TEST(LocalDataPipeTest, BasicTwoPhaseWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 4, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Start another two-phase write and check that it's readable even in the
|
| // middle of it.
|
| @@ -728,7 +748,8 @@ TEST(LocalDataPipeTest, BasicTwoPhaseWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 5, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // End the two-phase write without writing anything.
|
| EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerEndWriteData(0u));
|
| @@ -749,7 +770,8 @@ TEST(LocalDataPipeTest, BasicTwoPhaseWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ProducerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE, 6, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // But not readable.
|
| waiter.Init();
|
| @@ -760,7 +782,8 @@ TEST(LocalDataPipeTest, BasicTwoPhaseWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ConsumerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // End the two-phase read without reading anything.
|
| EXPECT_EQ(MOJO_RESULT_OK, dp->ConsumerEndReadData(0u));
|
| @@ -772,7 +795,8 @@ TEST(LocalDataPipeTest, BasicTwoPhaseWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 8, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| dp->ProducerClose();
|
| dp->ConsumerClose();
|
| @@ -801,7 +825,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ProducerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Not readable.
|
| waiter.Init();
|
| @@ -812,7 +837,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ConsumerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| uint32_t num_bytes = static_cast<uint32_t>(sizeof(int32_t));
|
| int32_t element = 123;
|
| @@ -828,7 +854,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ProducerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE, 2, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Now readable.
|
| waiter.Init();
|
| @@ -837,7 +864,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 3, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Overwrite that element.
|
| num_bytes = static_cast<uint32_t>(sizeof(int32_t));
|
| @@ -854,7 +882,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ProducerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE, 4, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // And still readable.
|
| waiter.Init();
|
| @@ -863,7 +892,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ConsumerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 5, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // Read that element.
|
| num_bytes = static_cast<uint32_t>(sizeof(int32_t));
|
| @@ -881,7 +911,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) {
|
| MOJO_RESULT_ALREADY_EXISTS,
|
| dp->ProducerAddWaiter(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE, 6, &hss));
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| // No longer readable.
|
| waiter.Init();
|
| @@ -892,7 +923,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) {
|
| hss = HandleSignalsState();
|
| dp->ConsumerRemoveWaiter(&waiter, &hss);
|
| EXPECT_EQ(0u, hss.satisfied_signals);
|
| - EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
| + EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_CLOSED,
|
| + hss.satisfiable_signals);
|
|
|
| dp->ProducerClose();
|
| dp->ConsumerClose();
|
|
|