| Index: base/files/memory_mapped_file_unittest.cc
|
| diff --git a/base/files/memory_mapped_file_unittest.cc b/base/files/memory_mapped_file_unittest.cc
|
| index 6627d4044287d0f81ddab3cb9b0389399e43da74..efc9be6521674fdf5fe1e2d110e1a00fd8a5b97f 100644
|
| --- a/base/files/memory_mapped_file_unittest.cc
|
| +++ b/base/files/memory_mapped_file_unittest.cc
|
| @@ -69,7 +69,8 @@ TEST_F(MemoryMappedFileTest, MapWholeFileByFD) {
|
| const size_t kFileSize = 68 * 1024;
|
| CreateTemporaryTestFile(kFileSize);
|
| MemoryMappedFile map;
|
| - map.Initialize(File(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ));
|
| + map.Initialize(File(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ),
|
| + false);
|
| ASSERT_EQ(kFileSize, map.length());
|
| ASSERT_TRUE(map.data() != NULL);
|
| EXPECT_TRUE(map.IsValid());
|
| @@ -93,7 +94,7 @@ TEST_F(MemoryMappedFileTest, MapWholeFileUsingRegion) {
|
| MemoryMappedFile map;
|
|
|
| File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
|
| - map.Initialize(file.Pass(), MemoryMappedFile::Region::kWholeFile);
|
| + map.Initialize(file.Pass(), MemoryMappedFile::Region::kWholeFile, false);
|
| ASSERT_EQ(kFileSize, map.length());
|
| ASSERT_TRUE(map.data() != NULL);
|
| EXPECT_TRUE(map.IsValid());
|
| @@ -107,7 +108,7 @@ TEST_F(MemoryMappedFileTest, MapPartialRegionAtBeginning) {
|
| MemoryMappedFile map;
|
|
|
| File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
|
| - map.Initialize(file.Pass(), MemoryMappedFile::Region(0, kPartialSize));
|
| + map.Initialize(file.Pass(), MemoryMappedFile::Region(0, kPartialSize), false);
|
| ASSERT_EQ(kPartialSize, map.length());
|
| ASSERT_TRUE(map.data() != NULL);
|
| EXPECT_TRUE(map.IsValid());
|
| @@ -122,7 +123,8 @@ TEST_F(MemoryMappedFileTest, MapPartialRegionAtEnd) {
|
| MemoryMappedFile map;
|
|
|
| File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
|
| - map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize));
|
| + map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize),
|
| + false);
|
| ASSERT_EQ(kPartialSize, map.length());
|
| ASSERT_TRUE(map.data() != NULL);
|
| EXPECT_TRUE(map.IsValid());
|
| @@ -138,7 +140,8 @@ TEST_F(MemoryMappedFileTest, MapSmallPartialRegionInTheMiddle) {
|
| MemoryMappedFile map;
|
|
|
| File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
|
| - map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize));
|
| + map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize),
|
| + false);
|
| ASSERT_EQ(kPartialSize, map.length());
|
| ASSERT_TRUE(map.data() != NULL);
|
| EXPECT_TRUE(map.IsValid());
|
| @@ -154,13 +157,74 @@ TEST_F(MemoryMappedFileTest, MapLargePartialRegionInTheMiddle) {
|
| MemoryMappedFile map;
|
|
|
| File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
|
| - map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize));
|
| + map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize),
|
| + false);
|
| ASSERT_EQ(kPartialSize, map.length());
|
| ASSERT_TRUE(map.data() != NULL);
|
| EXPECT_TRUE(map.IsValid());
|
| ASSERT_TRUE(CheckBufferContents(map.data(), kPartialSize, kOffset));
|
| }
|
|
|
| +TEST_F(MemoryMappedFileTest, MapWholeFileWithWrite) {
|
| + const size_t kFileSize = 68 * 1024;
|
| + CreateTemporaryTestFile(kFileSize);
|
| + MemoryMappedFile* map = new MemoryMappedFile();
|
| + map->Initialize(File(temp_file_path(), File::FLAG_OPEN |
|
| + File::FLAG_READ |
|
| + File::FLAG_WRITE), true);
|
| + ASSERT_EQ(kFileSize, map->length());
|
| + ASSERT_TRUE(map->data() != NULL);
|
| + EXPECT_TRUE(map->IsValid());
|
| + ASSERT_TRUE(CheckBufferContents(map->data(), kFileSize, 0));
|
| +
|
| + size_t size = 20, offset = 100;
|
| + scoped_ptr<uint8[]> test_data(CreateTestBuffer(size, offset));
|
| + memcpy(map->data(), test_data.get(), size);
|
| + delete map;
|
| +
|
| + MemoryMappedFile read_map;
|
| + read_map.Initialize(File(temp_file_path(), File::FLAG_OPEN |
|
| + File::FLAG_READ), false);
|
| + ASSERT_EQ(kFileSize, read_map.length());
|
| + ASSERT_TRUE(read_map.data() != NULL);
|
| + EXPECT_TRUE(read_map.IsValid());
|
| + ASSERT_TRUE(CheckBufferContents(read_map.data(), size, offset));
|
| +}
|
| +
|
| +TEST_F(MemoryMappedFileTest, MapLargePartialRegionInTheMiddleWithWrite) {
|
| + const size_t kFileSize = 157 * 1024;
|
| + const size_t kOffset = 1024 * 5 + 32;
|
| + const size_t kPartialSize = 16 * 1024 - 32;
|
| +
|
| + CreateTemporaryTestFile(kFileSize);
|
| + MemoryMappedFile* map = new MemoryMappedFile();
|
| +
|
| + File file(temp_file_path(), File::FLAG_OPEN |
|
| + File::FLAG_READ |
|
| + File::FLAG_WRITE);
|
| + map->Initialize(
|
| + file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize), true);
|
| + ASSERT_EQ(kPartialSize, map->length());
|
| + ASSERT_TRUE(map->data() != NULL);
|
| + EXPECT_TRUE(map->IsValid());
|
| + ASSERT_TRUE(CheckBufferContents(map->data(), kPartialSize, kOffset));
|
| +
|
| + size_t size = 20, offset = 100;
|
| + scoped_ptr<uint8[]> test_data(CreateTestBuffer(size, offset));
|
| + memcpy(map->data(), test_data.get(), size);
|
| + delete map;
|
| +
|
| + MemoryMappedFile read_map;
|
| + read_map.Initialize(
|
| + File(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ),
|
| + MemoryMappedFile::Region(kOffset, kPartialSize),
|
| + false);
|
| + ASSERT_EQ(kPartialSize, read_map.length());
|
| + ASSERT_TRUE(read_map.data() != NULL);
|
| + EXPECT_TRUE(read_map.IsValid());
|
| + ASSERT_TRUE(CheckBufferContents(read_map.data(), size, offset));
|
| +}
|
| +
|
| } // namespace
|
|
|
| } // namespace base
|
|
|