Index: mojo/system/local_data_pipe_unittest.cc |
diff --git a/mojo/system/local_data_pipe_unittest.cc b/mojo/system/local_data_pipe_unittest.cc |
index b5e9da8ae5d6f46459e1da06c0c96d4e3840f801..28727f7255e40b9286dce247bb6379a29ea8b80a 100644 |
--- a/mojo/system/local_data_pipe_unittest.cc |
+++ b/mojo/system/local_data_pipe_unittest.cc |
@@ -136,7 +136,8 @@ TEST(LocalDataPipeTest, SimpleReadWrite) { |
elements[1] = 456; |
num_bytes = static_cast<uint32_t>(2u * sizeof(elements[0])); |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(elements, &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(elements), |
+ MakeUserPointer(&num_bytes), false)); |
// It should have written everything (even without "all or none"). |
EXPECT_EQ(2u * sizeof(elements[0]), num_bytes); |
@@ -224,7 +225,9 @@ TEST(LocalDataPipeTest, BasicProducerWaiting) { |
// Write two elements. |
int32_t elements[2] = { 123, 456 }; |
uint32_t num_bytes = static_cast<uint32_t>(2u * sizeof(elements[0])); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(elements, &num_bytes, true)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(elements), |
+ MakeUserPointer(&num_bytes), true)); |
EXPECT_EQ(static_cast<uint32_t>(2u * sizeof(elements[0])), num_bytes); |
// Adding a waiter should now succeed. |
@@ -299,7 +302,9 @@ TEST(LocalDataPipeTest, BasicProducerWaiting) { |
// Write one element. |
elements[0] = 123; |
num_bytes = static_cast<uint32_t>(1u * sizeof(elements[0])); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(elements, &num_bytes, false)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(elements), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(static_cast<uint32_t>(1u * sizeof(elements[0])), num_bytes); |
// Add a waiter. |
@@ -350,7 +355,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) { |
int32_t elements[2] = { 123, 456 }; |
uint32_t num_bytes = static_cast<uint32_t>(2u * sizeof(elements[0])); |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(elements, &num_bytes, true)); |
+ dp->ProducerWriteData(UserPointer<const void>(elements), |
+ MakeUserPointer(&num_bytes), true)); |
// Should already be readable. |
waiter.Init(); |
@@ -389,7 +395,8 @@ TEST(LocalDataPipeTest, BasicConsumerWaiting) { |
elements[1] = -1; |
num_bytes = static_cast<uint32_t>(1u * sizeof(elements[0])); |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(elements, &num_bytes, true)); |
+ dp->ProducerWriteData(UserPointer<const void>(elements), |
+ MakeUserPointer(&num_bytes), true)); |
// Waiting should now succeed. |
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(1000, &context)); |
@@ -642,7 +649,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) { |
uint32_t num_bytes = static_cast<uint32_t>(sizeof(int32_t)); |
int32_t element = 123; |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(&element, &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(&element), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(static_cast<uint32_t>(sizeof(int32_t)), num_bytes); |
// Still writable (even though it's full). |
@@ -659,7 +667,8 @@ TEST(LocalDataPipeTest, BasicMayDiscardWaiting) { |
num_bytes = static_cast<uint32_t>(sizeof(int32_t)); |
element = 456; |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(&element, &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(&element), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(static_cast<uint32_t>(sizeof(int32_t)), num_bytes); |
// Still writable. |
@@ -722,7 +731,9 @@ TEST(LocalDataPipeTest, MayDiscard) { |
Seq(0, arraysize(buffer), buffer); |
// Try writing more than capacity. (This test relies on the implementation |
// enforcing the capacity strictly.) |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, false)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(10u * sizeof(int32_t), num_bytes); |
// Read half of what we wrote. |
@@ -742,7 +753,9 @@ TEST(LocalDataPipeTest, MayDiscard) { |
// Write a bit more than the space that's available. |
num_bytes = 8u * sizeof(int32_t); |
Seq(100, arraysize(buffer), buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, false)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(8u * sizeof(int32_t), num_bytes); |
// Internally, a circular buffer would now look like: |
// 100, 101, 102, 103, 104, 105, 106, 107, 8, 9 |
@@ -767,7 +780,9 @@ TEST(LocalDataPipeTest, MayDiscard) { |
// Write one integer. |
num_bytes = 1u * sizeof(int32_t); |
Seq(200, arraysize(buffer), buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, false)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(1u * sizeof(int32_t), num_bytes); |
// Internally, a circular buffer would now look like: |
// -, -, -, 103, 104, 105, 106, 107, 200, - |
@@ -775,7 +790,9 @@ TEST(LocalDataPipeTest, MayDiscard) { |
// Write five more. |
num_bytes = 5u * sizeof(int32_t); |
Seq(300, arraysize(buffer), buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, false)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(5u * sizeof(int32_t), num_bytes); |
// Internally, a circular buffer would now look like: |
// 301, 302, 303, 304, 104, 105, 106, 107, 200, 300 |
@@ -905,7 +922,8 @@ TEST(LocalDataPipeTest, AllOrNone) { |
int32_t buffer[100]; |
Seq(0, arraysize(buffer), buffer); |
EXPECT_EQ(MOJO_RESULT_OUT_OF_RANGE, |
- dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
// Should still be empty. |
num_bytes = ~0u; |
@@ -915,7 +933,9 @@ TEST(LocalDataPipeTest, AllOrNone) { |
// Write some data. |
num_bytes = 5u * sizeof(int32_t); |
Seq(100, arraysize(buffer), buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
EXPECT_EQ(5u * sizeof(int32_t), num_bytes); |
// Half full. |
@@ -927,7 +947,8 @@ TEST(LocalDataPipeTest, AllOrNone) { |
num_bytes = 6u * sizeof(int32_t); |
Seq(200, arraysize(buffer), buffer); |
EXPECT_EQ(MOJO_RESULT_OUT_OF_RANGE, |
- dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
// Try reading too much. |
num_bytes = 11u * sizeof(int32_t); |
@@ -947,13 +968,17 @@ TEST(LocalDataPipeTest, AllOrNone) { |
// Just a little. |
num_bytes = 2u * sizeof(int32_t); |
Seq(300, arraysize(buffer), buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
EXPECT_EQ(2u * sizeof(int32_t), num_bytes); |
// Just right. |
num_bytes = 3u * sizeof(int32_t); |
Seq(400, arraysize(buffer), buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
EXPECT_EQ(3u * sizeof(int32_t), num_bytes); |
// Exactly full. |
@@ -1057,18 +1082,23 @@ TEST(LocalDataPipeTest, AllOrNoneMayDiscard) { |
int32_t buffer[100]; |
Seq(0, arraysize(buffer), buffer); |
EXPECT_EQ(MOJO_RESULT_OUT_OF_RANGE, |
- dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
// Write some stuff. |
num_bytes = 5u * sizeof(int32_t); |
Seq(100, arraysize(buffer), buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
EXPECT_EQ(5u * sizeof(int32_t), num_bytes); |
// Write lots of stuff (discarding all but "104"). |
num_bytes = 9u * sizeof(int32_t); |
Seq(200, arraysize(buffer), buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
EXPECT_EQ(9u * sizeof(int32_t), num_bytes); |
// Read one. |
@@ -1110,7 +1140,9 @@ TEST(LocalDataPipeTest, AllOrNoneMayDiscard) { |
// Write as much as possible. |
num_bytes = 10u * sizeof(int32_t); |
Seq(300, arraysize(buffer), buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
EXPECT_EQ(10u * sizeof(int32_t), num_bytes); |
// Read everything. |
@@ -1214,7 +1246,9 @@ TEST(LocalDataPipeTest, TwoPhaseAllOrNone) { |
num_bytes = 6u * sizeof(int32_t); |
int32_t buffer[100]; |
Seq(100, 6, buffer); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(buffer, &num_bytes, true)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(buffer), |
+ MakeUserPointer(&num_bytes), true)); |
EXPECT_EQ(6u * sizeof(int32_t), num_bytes); |
// We have ten. |
@@ -1287,7 +1321,8 @@ TEST(LocalDataPipeTest, WrapAround) { |
// Write 20 bytes. |
uint32_t num_bytes = 20u; |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(&test_data[0], &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(&test_data[0]), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(20u, num_bytes); |
// Read 10 bytes. |
@@ -1315,7 +1350,8 @@ TEST(LocalDataPipeTest, WrapAround) { |
// 90 bytes. |
num_bytes = 200u; |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(&test_data[20], &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(&test_data[20]), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(90u, num_bytes); |
// Check that a two-phase read can now only read (at most) 90 bytes. (This |
@@ -1368,13 +1404,15 @@ TEST(LocalDataPipeTest, CloseWriteRead) { |
// Write some data, so we'll have something to read. |
uint32_t num_bytes = kTestDataSize; |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(kTestData, &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(kTestData), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(kTestDataSize, num_bytes); |
// Write it again, so we'll have something left over. |
num_bytes = kTestDataSize; |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(kTestData, &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(kTestData), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(kTestDataSize, num_bytes); |
// Start two-phase write. |
@@ -1422,7 +1460,8 @@ TEST(LocalDataPipeTest, CloseWriteRead) { |
// Write some data, so we'll have something to read. |
uint32_t num_bytes = kTestDataSize; |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(kTestData, &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(kTestData), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(kTestDataSize, num_bytes); |
// Start two-phase write. |
@@ -1456,7 +1495,8 @@ TEST(LocalDataPipeTest, CloseWriteRead) { |
// But trying to write should result in failure. |
num_bytes = kTestDataSize; |
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, |
- dp->ProducerWriteData(kTestData, &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(kTestData), |
+ MakeUserPointer(&num_bytes), false)); |
// As will trying to start another two-phase write. |
write_buffer_ptr = NULL; |
@@ -1493,7 +1533,8 @@ TEST(LocalDataPipeTest, CloseWriteRead) { |
// Write some data, so we'll have something to read. |
uint32_t num_bytes = kTestDataSize; |
EXPECT_EQ(MOJO_RESULT_OK, |
- dp->ProducerWriteData(kTestData, &num_bytes, false)); |
+ dp->ProducerWriteData(UserPointer<const void>(kTestData), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(kTestDataSize, num_bytes); |
// Close the producer. |
@@ -1596,7 +1637,9 @@ TEST(LocalDataPipeTest, TwoPhaseMoreInvalidArguments) { |
// Now write some data, so we'll be able to try reading. |
int32_t element = 123; |
num_bytes = 1u * sizeof(int32_t); |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(&element, &num_bytes, false)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(&element), |
+ MakeUserPointer(&num_bytes), false)); |
// One element available. |
num_bytes = 0u; |
@@ -1670,7 +1713,9 @@ TEST(LocalDataPipeTest, DISABLED_MayDiscardTwoPhaseConsistent) { |
// Write some elements. |
char elements[2] = { 'a', 'b' }; |
uint32_t num_bytes = 2u; |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(elements, &num_bytes, false)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(elements), |
+ MakeUserPointer(&num_bytes), false)); |
EXPECT_EQ(2u, num_bytes); |
// Begin reading. |
@@ -1692,7 +1737,9 @@ TEST(LocalDataPipeTest, DISABLED_MayDiscardTwoPhaseConsistent) { |
// dp->ProducerWriteData(elements, &num_bytes, false)); |
// but we incorrectly think that the bytes being read are discardable. Letting |
// this through reveals the significant consequence. |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(elements, &num_bytes, false)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(elements), |
+ MakeUserPointer(&num_bytes), false)); |
// Check that our read buffer hasn't changed underneath us. |
EXPECT_EQ('a', static_cast<const char*>(read_ptr)[0]); |
@@ -1702,7 +1749,9 @@ TEST(LocalDataPipeTest, DISABLED_MayDiscardTwoPhaseConsistent) { |
EXPECT_EQ(MOJO_RESULT_OK, dp->ConsumerEndReadData(2u)); |
// Now writing should succeed. |
- EXPECT_EQ(MOJO_RESULT_OK, dp->ProducerWriteData(elements, &num_bytes, false)); |
+ EXPECT_EQ(MOJO_RESULT_OK, |
+ dp->ProducerWriteData(UserPointer<const void>(elements), |
+ MakeUserPointer(&num_bytes), false)); |
// And if we read, we should get the new values. |
read_ptr = NULL; |