Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(417)

Side by Side Diff: base/files/memory_mapped_file_unittest.cc

Issue 430583005: Make VEA test support videos with different coded size and visible size (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address review comments of patch set 12 Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/files/memory_mapped_file.h" 5 #include "base/files/memory_mapped_file.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "testing/platform_test.h" 10 #include "testing/platform_test.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 ASSERT_EQ(kFileSize, map.length()); 62 ASSERT_EQ(kFileSize, map.length());
63 ASSERT_TRUE(map.data() != NULL); 63 ASSERT_TRUE(map.data() != NULL);
64 EXPECT_TRUE(map.IsValid()); 64 EXPECT_TRUE(map.IsValid());
65 ASSERT_TRUE(CheckBufferContents(map.data(), kFileSize, 0)); 65 ASSERT_TRUE(CheckBufferContents(map.data(), kFileSize, 0));
66 } 66 }
67 67
68 TEST_F(MemoryMappedFileTest, MapWholeFileByFD) { 68 TEST_F(MemoryMappedFileTest, MapWholeFileByFD) {
69 const size_t kFileSize = 68 * 1024; 69 const size_t kFileSize = 68 * 1024;
70 CreateTemporaryTestFile(kFileSize); 70 CreateTemporaryTestFile(kFileSize);
71 MemoryMappedFile map; 71 MemoryMappedFile map;
72 map.Initialize(File(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ)); 72 map.Initialize(File(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ),
73 false);
73 ASSERT_EQ(kFileSize, map.length()); 74 ASSERT_EQ(kFileSize, map.length());
74 ASSERT_TRUE(map.data() != NULL); 75 ASSERT_TRUE(map.data() != NULL);
75 EXPECT_TRUE(map.IsValid()); 76 EXPECT_TRUE(map.IsValid());
76 ASSERT_TRUE(CheckBufferContents(map.data(), kFileSize, 0)); 77 ASSERT_TRUE(CheckBufferContents(map.data(), kFileSize, 0));
77 } 78 }
78 79
79 TEST_F(MemoryMappedFileTest, MapSmallFile) { 80 TEST_F(MemoryMappedFileTest, MapSmallFile) {
80 const size_t kFileSize = 127; 81 const size_t kFileSize = 127;
81 CreateTemporaryTestFile(kFileSize); 82 CreateTemporaryTestFile(kFileSize);
82 MemoryMappedFile map; 83 MemoryMappedFile map;
83 map.Initialize(temp_file_path()); 84 map.Initialize(temp_file_path());
84 ASSERT_EQ(kFileSize, map.length()); 85 ASSERT_EQ(kFileSize, map.length());
85 ASSERT_TRUE(map.data() != NULL); 86 ASSERT_TRUE(map.data() != NULL);
86 EXPECT_TRUE(map.IsValid()); 87 EXPECT_TRUE(map.IsValid());
87 ASSERT_TRUE(CheckBufferContents(map.data(), kFileSize, 0)); 88 ASSERT_TRUE(CheckBufferContents(map.data(), kFileSize, 0));
88 } 89 }
89 90
90 TEST_F(MemoryMappedFileTest, MapWholeFileUsingRegion) { 91 TEST_F(MemoryMappedFileTest, MapWholeFileUsingRegion) {
91 const size_t kFileSize = 157 * 1024; 92 const size_t kFileSize = 157 * 1024;
92 CreateTemporaryTestFile(kFileSize); 93 CreateTemporaryTestFile(kFileSize);
93 MemoryMappedFile map; 94 MemoryMappedFile map;
94 95
95 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ); 96 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
96 map.Initialize(file.Pass(), MemoryMappedFile::Region::kWholeFile); 97 map.Initialize(file.Pass(), MemoryMappedFile::Region::kWholeFile, false);
97 ASSERT_EQ(kFileSize, map.length()); 98 ASSERT_EQ(kFileSize, map.length());
98 ASSERT_TRUE(map.data() != NULL); 99 ASSERT_TRUE(map.data() != NULL);
99 EXPECT_TRUE(map.IsValid()); 100 EXPECT_TRUE(map.IsValid());
100 ASSERT_TRUE(CheckBufferContents(map.data(), kFileSize, 0)); 101 ASSERT_TRUE(CheckBufferContents(map.data(), kFileSize, 0));
101 } 102 }
102 103
103 TEST_F(MemoryMappedFileTest, MapPartialRegionAtBeginning) { 104 TEST_F(MemoryMappedFileTest, MapPartialRegionAtBeginning) {
104 const size_t kFileSize = 157 * 1024; 105 const size_t kFileSize = 157 * 1024;
105 const size_t kPartialSize = 4 * 1024 + 32; 106 const size_t kPartialSize = 4 * 1024 + 32;
106 CreateTemporaryTestFile(kFileSize); 107 CreateTemporaryTestFile(kFileSize);
107 MemoryMappedFile map; 108 MemoryMappedFile map;
108 109
109 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ); 110 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
110 map.Initialize(file.Pass(), MemoryMappedFile::Region(0, kPartialSize)); 111 map.Initialize(file.Pass(), MemoryMappedFile::Region(0, kPartialSize), false);
111 ASSERT_EQ(kPartialSize, map.length()); 112 ASSERT_EQ(kPartialSize, map.length());
112 ASSERT_TRUE(map.data() != NULL); 113 ASSERT_TRUE(map.data() != NULL);
113 EXPECT_TRUE(map.IsValid()); 114 EXPECT_TRUE(map.IsValid());
114 ASSERT_TRUE(CheckBufferContents(map.data(), kPartialSize, 0)); 115 ASSERT_TRUE(CheckBufferContents(map.data(), kPartialSize, 0));
115 } 116 }
116 117
117 TEST_F(MemoryMappedFileTest, MapPartialRegionAtEnd) { 118 TEST_F(MemoryMappedFileTest, MapPartialRegionAtEnd) {
118 const size_t kFileSize = 157 * 1024; 119 const size_t kFileSize = 157 * 1024;
119 const size_t kPartialSize = 5 * 1024 - 32; 120 const size_t kPartialSize = 5 * 1024 - 32;
120 const size_t kOffset = kFileSize - kPartialSize; 121 const size_t kOffset = kFileSize - kPartialSize;
121 CreateTemporaryTestFile(kFileSize); 122 CreateTemporaryTestFile(kFileSize);
122 MemoryMappedFile map; 123 MemoryMappedFile map;
123 124
124 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ); 125 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
125 map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize)); 126 map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize),
127 false);
126 ASSERT_EQ(kPartialSize, map.length()); 128 ASSERT_EQ(kPartialSize, map.length());
127 ASSERT_TRUE(map.data() != NULL); 129 ASSERT_TRUE(map.data() != NULL);
128 EXPECT_TRUE(map.IsValid()); 130 EXPECT_TRUE(map.IsValid());
129 ASSERT_TRUE(CheckBufferContents(map.data(), kPartialSize, kOffset)); 131 ASSERT_TRUE(CheckBufferContents(map.data(), kPartialSize, kOffset));
130 } 132 }
131 133
132 TEST_F(MemoryMappedFileTest, MapSmallPartialRegionInTheMiddle) { 134 TEST_F(MemoryMappedFileTest, MapSmallPartialRegionInTheMiddle) {
133 const size_t kFileSize = 157 * 1024; 135 const size_t kFileSize = 157 * 1024;
134 const size_t kOffset = 1024 * 5 + 32; 136 const size_t kOffset = 1024 * 5 + 32;
135 const size_t kPartialSize = 8; 137 const size_t kPartialSize = 8;
136 138
137 CreateTemporaryTestFile(kFileSize); 139 CreateTemporaryTestFile(kFileSize);
138 MemoryMappedFile map; 140 MemoryMappedFile map;
139 141
140 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ); 142 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
141 map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize)); 143 map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize),
144 false);
142 ASSERT_EQ(kPartialSize, map.length()); 145 ASSERT_EQ(kPartialSize, map.length());
143 ASSERT_TRUE(map.data() != NULL); 146 ASSERT_TRUE(map.data() != NULL);
144 EXPECT_TRUE(map.IsValid()); 147 EXPECT_TRUE(map.IsValid());
145 ASSERT_TRUE(CheckBufferContents(map.data(), kPartialSize, kOffset)); 148 ASSERT_TRUE(CheckBufferContents(map.data(), kPartialSize, kOffset));
146 } 149 }
147 150
148 TEST_F(MemoryMappedFileTest, MapLargePartialRegionInTheMiddle) { 151 TEST_F(MemoryMappedFileTest, MapLargePartialRegionInTheMiddle) {
149 const size_t kFileSize = 157 * 1024; 152 const size_t kFileSize = 157 * 1024;
150 const size_t kOffset = 1024 * 5 + 32; 153 const size_t kOffset = 1024 * 5 + 32;
151 const size_t kPartialSize = 16 * 1024 - 32; 154 const size_t kPartialSize = 16 * 1024 - 32;
152 155
153 CreateTemporaryTestFile(kFileSize); 156 CreateTemporaryTestFile(kFileSize);
154 MemoryMappedFile map; 157 MemoryMappedFile map;
155 158
156 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ); 159 File file(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ);
157 map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize)); 160 map.Initialize(file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize),
161 false);
158 ASSERT_EQ(kPartialSize, map.length()); 162 ASSERT_EQ(kPartialSize, map.length());
159 ASSERT_TRUE(map.data() != NULL); 163 ASSERT_TRUE(map.data() != NULL);
160 EXPECT_TRUE(map.IsValid()); 164 EXPECT_TRUE(map.IsValid());
161 ASSERT_TRUE(CheckBufferContents(map.data(), kPartialSize, kOffset)); 165 ASSERT_TRUE(CheckBufferContents(map.data(), kPartialSize, kOffset));
162 } 166 }
163 167
168 TEST_F(MemoryMappedFileTest, MapWholeFileWithWrite) {
169 const size_t kFileSize = 68 * 1024;
170 CreateTemporaryTestFile(kFileSize);
171 MemoryMappedFile* map = new MemoryMappedFile();
172 map->Initialize(File(temp_file_path(), File::FLAG_OPEN |
173 File::FLAG_READ |
174 File::FLAG_WRITE), true);
175 ASSERT_EQ(kFileSize, map->length());
176 ASSERT_TRUE(map->data() != NULL);
177 EXPECT_TRUE(map->IsValid());
178 ASSERT_TRUE(CheckBufferContents(map->data(), kFileSize, 0));
179
180 size_t size = 20, offset = 100;
181 scoped_ptr<uint8[]> test_data(CreateTestBuffer(size, offset));
182 memcpy(map->data(), test_data.get(), size);
183 delete map;
184
185 MemoryMappedFile read_map;
186 read_map.Initialize(File(temp_file_path(), File::FLAG_OPEN |
187 File::FLAG_READ), false);
188 ASSERT_EQ(kFileSize, read_map.length());
189 ASSERT_TRUE(read_map.data() != NULL);
190 EXPECT_TRUE(read_map.IsValid());
191 ASSERT_TRUE(CheckBufferContents(read_map.data(), size, offset));
192 }
193
194 TEST_F(MemoryMappedFileTest, MapLargePartialRegionInTheMiddleWithWrite) {
195 const size_t kFileSize = 157 * 1024;
196 const size_t kOffset = 1024 * 5 + 32;
197 const size_t kPartialSize = 16 * 1024 - 32;
198
199 CreateTemporaryTestFile(kFileSize);
200 MemoryMappedFile* map = new MemoryMappedFile();
201
202 File file(temp_file_path(), File::FLAG_OPEN |
203 File::FLAG_READ |
204 File::FLAG_WRITE);
205 map->Initialize(
206 file.Pass(), MemoryMappedFile::Region(kOffset, kPartialSize), true);
207 ASSERT_EQ(kPartialSize, map->length());
208 ASSERT_TRUE(map->data() != NULL);
209 EXPECT_TRUE(map->IsValid());
210 ASSERT_TRUE(CheckBufferContents(map->data(), kPartialSize, kOffset));
211
212 size_t size = 20, offset = 100;
213 scoped_ptr<uint8[]> test_data(CreateTestBuffer(size, offset));
214 memcpy(map->data(), test_data.get(), size);
215 delete map;
216
217 MemoryMappedFile read_map;
218 read_map.Initialize(
219 File(temp_file_path(), File::FLAG_OPEN | File::FLAG_READ),
220 MemoryMappedFile::Region(kOffset, kPartialSize),
221 false);
222 ASSERT_EQ(kPartialSize, read_map.length());
223 ASSERT_TRUE(read_map.data() != NULL);
224 EXPECT_TRUE(read_map.IsValid());
225 ASSERT_TRUE(CheckBufferContents(read_map.data(), size, offset));
226 }
227
164 } // namespace 228 } // namespace
165 229
166 } // namespace base 230 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698