OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/file.h" | 5 #include "base/files/file.h" |
6 #include "base/files/file_util.h" | 6 #include "base/files/file_util.h" |
7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
8 #include "base/hash.h" | 8 #include "base/hash.h" |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 } | 214 } |
215 | 215 |
216 TEST_F(SimpleIndexFileTest, LoadCorruptIndex) { | 216 TEST_F(SimpleIndexFileTest, LoadCorruptIndex) { |
217 base::ScopedTempDir cache_dir; | 217 base::ScopedTempDir cache_dir; |
218 ASSERT_TRUE(cache_dir.CreateUniqueTempDir()); | 218 ASSERT_TRUE(cache_dir.CreateUniqueTempDir()); |
219 | 219 |
220 WrappedSimpleIndexFile simple_index_file(cache_dir.path()); | 220 WrappedSimpleIndexFile simple_index_file(cache_dir.path()); |
221 ASSERT_TRUE(simple_index_file.CreateIndexFileDirectory()); | 221 ASSERT_TRUE(simple_index_file.CreateIndexFileDirectory()); |
222 const base::FilePath& index_path = simple_index_file.GetIndexFilePath(); | 222 const base::FilePath& index_path = simple_index_file.GetIndexFilePath(); |
223 const std::string kDummyData = "nothing to be seen here"; | 223 const std::string kDummyData = "nothing to be seen here"; |
224 EXPECT_EQ( | 224 EXPECT_EQ(static_cast<int>(kDummyData.size()), |
225 implicit_cast<int>(kDummyData.size()), | 225 base::WriteFile(index_path, kDummyData.data(), kDummyData.size())); |
226 base::WriteFile(index_path, kDummyData.data(), kDummyData.size())); | |
227 base::Time fake_cache_mtime; | 226 base::Time fake_cache_mtime; |
228 ASSERT_TRUE(simple_util::GetMTime(simple_index_file.GetIndexFilePath(), | 227 ASSERT_TRUE(simple_util::GetMTime(simple_index_file.GetIndexFilePath(), |
229 &fake_cache_mtime)); | 228 &fake_cache_mtime)); |
230 EXPECT_FALSE(WrappedSimpleIndexFile::LegacyIsIndexFileStale(fake_cache_mtime, | 229 EXPECT_FALSE(WrappedSimpleIndexFile::LegacyIsIndexFileStale(fake_cache_mtime, |
231 index_path)); | 230 index_path)); |
232 SimpleIndexLoadResult load_index_result; | 231 SimpleIndexLoadResult load_index_result; |
233 net::TestClosure closure; | 232 net::TestClosure closure; |
234 simple_index_file.LoadIndexEntries(fake_cache_mtime, closure.closure(), | 233 simple_index_file.LoadIndexEntries(fake_cache_mtime, closure.closure(), |
235 &load_index_result); | 234 &load_index_result); |
236 closure.WaitForResult(); | 235 closure.WaitForResult(); |
(...skipping 19 matching lines...) Expand all Loading... |
256 int bytes_written = file.Write(0, reinterpret_cast<char*>(&file_contents), | 255 int bytes_written = file.Write(0, reinterpret_cast<char*>(&file_contents), |
257 sizeof(file_contents)); | 256 sizeof(file_contents)); |
258 ASSERT_EQ((int)sizeof(file_contents), bytes_written); | 257 ASSERT_EQ((int)sizeof(file_contents), bytes_written); |
259 file.Close(); | 258 file.Close(); |
260 | 259 |
261 // Write the index file. The format is incorrect, but for transitioning from | 260 // Write the index file. The format is incorrect, but for transitioning from |
262 // v5 it does not matter. | 261 // v5 it does not matter. |
263 const std::string index_file_contents("incorrectly serialized data"); | 262 const std::string index_file_contents("incorrectly serialized data"); |
264 const base::FilePath old_index_file = | 263 const base::FilePath old_index_file = |
265 cache_path.AppendASCII("the-real-index"); | 264 cache_path.AppendASCII("the-real-index"); |
266 ASSERT_EQ(implicit_cast<int>(index_file_contents.size()), | 265 ASSERT_EQ(static_cast<int>(index_file_contents.size()), |
267 base::WriteFile(old_index_file, | 266 base::WriteFile(old_index_file, index_file_contents.data(), |
268 index_file_contents.data(), | |
269 index_file_contents.size())); | 267 index_file_contents.size())); |
270 | 268 |
271 // Upgrade the cache. | 269 // Upgrade the cache. |
272 ASSERT_TRUE(disk_cache::UpgradeSimpleCacheOnDisk(cache_path)); | 270 ASSERT_TRUE(disk_cache::UpgradeSimpleCacheOnDisk(cache_path)); |
273 | 271 |
274 // Create the backend and initiate index flush by destroying the backend. | 272 // Create the backend and initiate index flush by destroying the backend. |
275 base::Thread cache_thread("CacheThread"); | 273 base::Thread cache_thread("CacheThread"); |
276 ASSERT_TRUE(cache_thread.StartWithOptions( | 274 ASSERT_TRUE(cache_thread.StartWithOptions( |
277 base::Thread::Options(base::MessageLoop::TYPE_IO, 0))); | 275 base::Thread::Options(base::MessageLoop::TYPE_IO, 0))); |
278 disk_cache::SimpleBackendImpl* simple_cache = | 276 disk_cache::SimpleBackendImpl* simple_cache = |
(...skipping 29 matching lines...) Expand all Loading... |
308 WrappedSimpleIndexFile::Deserialize(contents.data(), | 306 WrappedSimpleIndexFile::Deserialize(contents.data(), |
309 contents.size(), | 307 contents.size(), |
310 &when_index_last_saw_cache, | 308 &when_index_last_saw_cache, |
311 &deserialize_result); | 309 &deserialize_result); |
312 EXPECT_TRUE(deserialize_result.did_load); | 310 EXPECT_TRUE(deserialize_result.did_load); |
313 } | 311 } |
314 | 312 |
315 #endif // defined(OS_POSIX) | 313 #endif // defined(OS_POSIX) |
316 | 314 |
317 } // namespace disk_cache | 315 } // namespace disk_cache |
OLD | NEW |