Index: chrome/common/partial_circular_buffer_unittest.cc |
diff --git a/chrome/common/partial_circular_buffer_unittest.cc b/chrome/common/partial_circular_buffer_unittest.cc |
index 85153fac8d1e21f3cf1ca041fa9ea86dc8b75a59..38a920799ade6675587e2bbf082c739ba278d98d 100644 |
--- a/chrome/common/partial_circular_buffer_unittest.cc |
+++ b/chrome/common/partial_circular_buffer_unittest.cc |
@@ -189,3 +189,24 @@ TEST_F(PartialCircularBufferTest, WrapOnceThenOverwriteWithNoWrap) { |
EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); |
} |
+ |
+TEST_F(PartialCircularBufferTest, WrapTwiceWithSingleWrite) { |
+ size_t input_size = sizeof(kInputData); |
Nico
2015/04/07 16:42:16
const size_t kInputSize
gzobqq
2015/04/08 12:59:03
Done.
|
+ size_t large_size = input_size * 7; |
Nico
2015/04/07 16:42:16
const size_t kLargeSize
gzobqq
2015/04/08 12:59:03
Done.
|
+ scoped_ptr<uint8[]> large_input(new uint8[large_size]); |
Nico
2015/04/07 16:42:16
Shouldn't this easily fit on the stack?
gzobqq
2015/04/08 12:59:03
Done.
|
+ for (size_t offset = 0; offset < large_size; offset += input_size) |
+ memcpy(large_input.get() + offset, kInputData, input_size); |
+ |
+ InitWriteBuffer(false); |
+ pcb_write_->Write(large_input.get(), large_size); |
+ InitReadBuffer(); |
+ |
+ uint8 output_data[sizeof(kOutputRefDataWrap)] = {0}; |
+ EXPECT_EQ(sizeof(output_data), |
+ pcb_read_->Read(output_data, sizeof(output_data))); |
+ |
+ EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data))); |
+ |
+ EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); |
+} |
+ |