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

Side by Side Diff: net/disk_cache/simple/simple_index_file_unittest.cc

Issue 706203003: Update from https://crrev.com/303153 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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 (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/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 }; 91 };
92 92
93 class SimpleIndexFileTest : public testing::Test { 93 class SimpleIndexFileTest : public testing::Test {
94 public: 94 public:
95 bool CompareTwoEntryMetadata(const EntryMetadata& a, const EntryMetadata& b) { 95 bool CompareTwoEntryMetadata(const EntryMetadata& a, const EntryMetadata& b) {
96 return 96 return
97 a.last_used_time_seconds_since_epoch_ == 97 a.last_used_time_seconds_since_epoch_ ==
98 b.last_used_time_seconds_since_epoch_ && 98 b.last_used_time_seconds_since_epoch_ &&
99 a.entry_size_ == b.entry_size_; 99 a.entry_size_ == b.entry_size_;
100 } 100 }
101
102 protected:
103 SimpleIndexFileTest() : callback_called_(false) {}
104
105 base::Closure GetCallback() {
106 return base::Bind(&SimpleIndexFileTest::LoadIndexEntriesCallback,
107 base::Unretained(this));
108 }
109
110 bool callback_called() { return callback_called_; }
111
112 private:
113 void LoadIndexEntriesCallback() {
114 EXPECT_FALSE(callback_called_);
115 callback_called_ = true;
116 }
117
118 bool callback_called_;
119 }; 101 };
120 102
121 TEST_F(SimpleIndexFileTest, Serialize) { 103 TEST_F(SimpleIndexFileTest, Serialize) {
122 SimpleIndex::EntrySet entries; 104 SimpleIndex::EntrySet entries;
123 static const uint64 kHashes[] = { 11, 22, 33 }; 105 static const uint64 kHashes[] = { 11, 22, 33 };
124 static const size_t kNumHashes = arraysize(kHashes); 106 static const size_t kNumHashes = arraysize(kHashes);
125 EntryMetadata metadata_entries[kNumHashes]; 107 EntryMetadata metadata_entries[kNumHashes];
126 108
127 SimpleIndexFile::IndexMetadata index_metadata(static_cast<uint64>(kNumHashes), 109 SimpleIndexFile::IndexMetadata index_metadata(static_cast<uint64>(kNumHashes),
128 456); 110 456);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 static const uint64 kHashes[] = { 11, 22, 33 }; 178 static const uint64 kHashes[] = { 11, 22, 33 };
197 static const size_t kNumHashes = arraysize(kHashes); 179 static const size_t kNumHashes = arraysize(kHashes);
198 EntryMetadata metadata_entries[kNumHashes]; 180 EntryMetadata metadata_entries[kNumHashes];
199 for (size_t i = 0; i < kNumHashes; ++i) { 181 for (size_t i = 0; i < kNumHashes; ++i) {
200 uint64 hash = kHashes[i]; 182 uint64 hash = kHashes[i];
201 metadata_entries[i] = EntryMetadata(Time(), hash); 183 metadata_entries[i] = EntryMetadata(Time(), hash);
202 SimpleIndex::InsertInEntrySet(hash, metadata_entries[i], &entries); 184 SimpleIndex::InsertInEntrySet(hash, metadata_entries[i], &entries);
203 } 185 }
204 186
205 const uint64 kCacheSize = 456U; 187 const uint64 kCacheSize = 456U;
188 net::TestClosure closure;
206 { 189 {
207 WrappedSimpleIndexFile simple_index_file(cache_dir.path()); 190 WrappedSimpleIndexFile simple_index_file(cache_dir.path());
208 simple_index_file.WriteToDisk(entries, kCacheSize, 191 simple_index_file.WriteToDisk(entries, kCacheSize, base::TimeTicks(),
209 base::TimeTicks(), false); 192 false, closure.closure());
210 base::RunLoop().RunUntilIdle(); 193 closure.WaitForResult();
211 EXPECT_TRUE(base::PathExists(simple_index_file.GetIndexFilePath())); 194 EXPECT_TRUE(base::PathExists(simple_index_file.GetIndexFilePath()));
212 } 195 }
213 196
214 WrappedSimpleIndexFile simple_index_file(cache_dir.path()); 197 WrappedSimpleIndexFile simple_index_file(cache_dir.path());
215 base::Time fake_cache_mtime; 198 base::Time fake_cache_mtime;
216 ASSERT_TRUE(simple_util::GetMTime(cache_dir.path(), &fake_cache_mtime)); 199 ASSERT_TRUE(simple_util::GetMTime(cache_dir.path(), &fake_cache_mtime));
217 SimpleIndexLoadResult load_index_result; 200 SimpleIndexLoadResult load_index_result;
218 simple_index_file.LoadIndexEntries(fake_cache_mtime, 201 simple_index_file.LoadIndexEntries(fake_cache_mtime, closure.closure(),
219 GetCallback(),
220 &load_index_result); 202 &load_index_result);
221 base::RunLoop().RunUntilIdle(); 203 closure.WaitForResult();
222 204
223 EXPECT_TRUE(base::PathExists(simple_index_file.GetIndexFilePath())); 205 EXPECT_TRUE(base::PathExists(simple_index_file.GetIndexFilePath()));
224 ASSERT_TRUE(callback_called());
225 EXPECT_TRUE(load_index_result.did_load); 206 EXPECT_TRUE(load_index_result.did_load);
226 EXPECT_FALSE(load_index_result.flush_required); 207 EXPECT_FALSE(load_index_result.flush_required);
227 208
228 EXPECT_EQ(kNumHashes, load_index_result.entries.size()); 209 EXPECT_EQ(kNumHashes, load_index_result.entries.size());
229 for (size_t i = 0; i < kNumHashes; ++i) 210 for (size_t i = 0; i < kNumHashes; ++i)
230 EXPECT_EQ(1U, load_index_result.entries.count(kHashes[i])); 211 EXPECT_EQ(1U, load_index_result.entries.count(kHashes[i]));
231 } 212 }
232 213
233 TEST_F(SimpleIndexFileTest, LoadCorruptIndex) { 214 TEST_F(SimpleIndexFileTest, LoadCorruptIndex) {
234 base::ScopedTempDir cache_dir; 215 base::ScopedTempDir cache_dir;
235 ASSERT_TRUE(cache_dir.CreateUniqueTempDir()); 216 ASSERT_TRUE(cache_dir.CreateUniqueTempDir());
236 217
237 WrappedSimpleIndexFile simple_index_file(cache_dir.path()); 218 WrappedSimpleIndexFile simple_index_file(cache_dir.path());
238 ASSERT_TRUE(simple_index_file.CreateIndexFileDirectory()); 219 ASSERT_TRUE(simple_index_file.CreateIndexFileDirectory());
239 const base::FilePath& index_path = simple_index_file.GetIndexFilePath(); 220 const base::FilePath& index_path = simple_index_file.GetIndexFilePath();
240 const std::string kDummyData = "nothing to be seen here"; 221 const std::string kDummyData = "nothing to be seen here";
241 EXPECT_EQ( 222 EXPECT_EQ(
242 implicit_cast<int>(kDummyData.size()), 223 implicit_cast<int>(kDummyData.size()),
243 base::WriteFile(index_path, kDummyData.data(), kDummyData.size())); 224 base::WriteFile(index_path, kDummyData.data(), kDummyData.size()));
244 base::Time fake_cache_mtime; 225 base::Time fake_cache_mtime;
245 ASSERT_TRUE(simple_util::GetMTime(simple_index_file.GetIndexFilePath(), 226 ASSERT_TRUE(simple_util::GetMTime(simple_index_file.GetIndexFilePath(),
246 &fake_cache_mtime)); 227 &fake_cache_mtime));
247 EXPECT_FALSE(WrappedSimpleIndexFile::LegacyIsIndexFileStale(fake_cache_mtime, 228 EXPECT_FALSE(WrappedSimpleIndexFile::LegacyIsIndexFileStale(fake_cache_mtime,
248 index_path)); 229 index_path));
249
250 SimpleIndexLoadResult load_index_result; 230 SimpleIndexLoadResult load_index_result;
251 simple_index_file.LoadIndexEntries(fake_cache_mtime, 231 net::TestClosure closure;
252 GetCallback(), 232 simple_index_file.LoadIndexEntries(fake_cache_mtime, closure.closure(),
253 &load_index_result); 233 &load_index_result);
254 base::RunLoop().RunUntilIdle(); 234 closure.WaitForResult();
255 235
256 EXPECT_FALSE(base::PathExists(index_path)); 236 EXPECT_FALSE(base::PathExists(index_path));
257 ASSERT_TRUE(callback_called());
258 EXPECT_TRUE(load_index_result.did_load); 237 EXPECT_TRUE(load_index_result.did_load);
259 EXPECT_TRUE(load_index_result.flush_required); 238 EXPECT_TRUE(load_index_result.flush_required);
260 } 239 }
261 240
262 // Tests that after an upgrade the backend has the index file put in place. 241 // Tests that after an upgrade the backend has the index file put in place.
263 TEST_F(SimpleIndexFileTest, SimpleCacheUpgrade) { 242 TEST_F(SimpleIndexFileTest, SimpleCacheUpgrade) {
264 base::ScopedTempDir cache_dir; 243 base::ScopedTempDir cache_dir;
265 ASSERT_TRUE(cache_dir.CreateUniqueTempDir()); 244 ASSERT_TRUE(cache_dir.CreateUniqueTempDir());
266 const base::FilePath cache_path = cache_dir.path(); 245 const base::FilePath cache_path = cache_dir.path();
267 246
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 WrappedSimpleIndexFile::Deserialize(contents.data(), 309 WrappedSimpleIndexFile::Deserialize(contents.data(),
331 contents.size(), 310 contents.size(),
332 &when_index_last_saw_cache, 311 &when_index_last_saw_cache,
333 &deserialize_result); 312 &deserialize_result);
334 EXPECT_TRUE(deserialize_result.did_load); 313 EXPECT_TRUE(deserialize_result.did_load);
335 } 314 }
336 315
337 #endif // defined(OS_POSIX) 316 #endif // defined(OS_POSIX)
338 317
339 } // namespace disk_cache 318 } // namespace disk_cache
OLDNEW
« no previous file with comments | « net/disk_cache/simple/simple_index_file.cc ('k') | net/disk_cache/simple/simple_index_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698