| Index: mojo/edk/system/core_unittest.cc
|
| diff --git a/mojo/edk/system/core_unittest.cc b/mojo/edk/system/core_unittest.cc
|
| index 9adde192bb40eeb71c8aaa8ee25f333d89783cf3..e6607df0dad95d5f14aadbde5ca52f3cff9aa483 100644
|
| --- a/mojo/edk/system/core_unittest.cc
|
| +++ b/mojo/edk/system/core_unittest.cc
|
| @@ -1084,6 +1084,19 @@ TEST_F(CoreTest, DataPipe) {
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
|
| EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfiable_signals);
|
|
|
| + // Peek one character.
|
| + elements[0] = -1;
|
| + elements[1] = -1;
|
| + num_bytes = 1u;
|
| + EXPECT_EQ(MOJO_RESULT_OK,
|
| + core()->ReadData(
|
| + ch,
|
| + UserPointer<void>(elements),
|
| + MakeUserPointer(&num_bytes),
|
| + MOJO_READ_DATA_FLAG_NONE | MOJO_READ_DATA_FLAG_PEEK));
|
| + EXPECT_EQ('A', elements[0]);
|
| + EXPECT_EQ(-1, elements[1]);
|
| +
|
| // Read one character.
|
| elements[0] = -1;
|
| elements[1] = -1;
|
| @@ -1131,6 +1144,16 @@ TEST_F(CoreTest, DataPipe) {
|
| MOJO_READ_DATA_FLAG_QUERY));
|
| EXPECT_EQ(4u, num_bytes);
|
|
|
| + // Try to query with peek. Should fail.
|
| + num_bytes = 0;
|
| + EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
|
| + core()->ReadData(
|
| + ch,
|
| + NullUserPointer(),
|
| + MakeUserPointer(&num_bytes),
|
| + MOJO_READ_DATA_FLAG_QUERY | MOJO_READ_DATA_FLAG_PEEK));
|
| + EXPECT_EQ(0u, num_bytes);
|
| +
|
| // Try to discard ten characters, in all-or-none mode. Should fail.
|
| num_bytes = 10;
|
| EXPECT_EQ(MOJO_RESULT_OUT_OF_RANGE,
|
| @@ -1140,6 +1163,15 @@ TEST_F(CoreTest, DataPipe) {
|
| MakeUserPointer(&num_bytes),
|
| MOJO_READ_DATA_FLAG_DISCARD | MOJO_READ_DATA_FLAG_ALL_OR_NONE));
|
|
|
| + // Try to discard two characters, in peek mode. Should fail.
|
| + num_bytes = 2;
|
| + EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
|
| + core()->ReadData(
|
| + ch,
|
| + NullUserPointer(),
|
| + MakeUserPointer(&num_bytes),
|
| + MOJO_READ_DATA_FLAG_DISCARD | MOJO_READ_DATA_FLAG_PEEK));
|
| +
|
| // Discard two characters.
|
| num_bytes = 2;
|
| EXPECT_EQ(MOJO_RESULT_OK,
|
| @@ -1149,9 +1181,17 @@ TEST_F(CoreTest, DataPipe) {
|
| MakeUserPointer(&num_bytes),
|
| MOJO_READ_DATA_FLAG_DISCARD | MOJO_READ_DATA_FLAG_ALL_OR_NONE));
|
|
|
| - // Read the remaining two characters, in two-phase mode (all-or-none).
|
| + // Try a two-phase read of the remaining two bytes with peek. Should fail.
|
| const void* read_ptr = nullptr;
|
| num_bytes = 2;
|
| + ASSERT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
|
| + core()->BeginReadData(ch,
|
| + MakeUserPointer(&read_ptr),
|
| + MakeUserPointer(&num_bytes),
|
| + MOJO_READ_DATA_FLAG_PEEK));
|
| +
|
| + // Read the remaining two characters, in two-phase mode (all-or-none).
|
| + num_bytes = 2;
|
| ASSERT_EQ(MOJO_RESULT_OK,
|
| core()->BeginReadData(ch,
|
| MakeUserPointer(&read_ptr),
|
|
|