OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "net/disk_cache/simple/simple_index.h" |
| 6 |
5 #include <algorithm> | 7 #include <algorithm> |
6 #include <functional> | 8 #include <functional> |
| 9 #include <utility> |
7 | 10 |
8 #include "base/files/scoped_temp_dir.h" | 11 #include "base/files/scoped_temp_dir.h" |
9 #include "base/hash.h" | 12 #include "base/hash.h" |
10 #include "base/logging.h" | 13 #include "base/logging.h" |
11 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
12 #include "base/pickle.h" | 15 #include "base/pickle.h" |
13 #include "base/sha1.h" | 16 #include "base/sha1.h" |
14 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
15 #include "base/task_runner.h" | 18 #include "base/task_runner.h" |
16 #include "base/threading/platform_thread.h" | 19 #include "base/threading/platform_thread.h" |
17 #include "base/time/time.h" | 20 #include "base/time/time.h" |
18 #include "net/base/cache_type.h" | 21 #include "net/base/cache_type.h" |
19 #include "net/disk_cache/simple/simple_index.h" | |
20 #include "net/disk_cache/simple/simple_index_delegate.h" | 22 #include "net/disk_cache/simple/simple_index_delegate.h" |
21 #include "net/disk_cache/simple/simple_index_file.h" | 23 #include "net/disk_cache/simple/simple_index_file.h" |
22 #include "net/disk_cache/simple/simple_test_util.h" | 24 #include "net/disk_cache/simple/simple_test_util.h" |
23 #include "net/disk_cache/simple/simple_util.h" | 25 #include "net/disk_cache/simple/simple_util.h" |
24 #include "testing/gtest/include/gtest/gtest.h" | 26 #include "testing/gtest/include/gtest/gtest.h" |
25 | 27 |
26 namespace disk_cache { | 28 namespace disk_cache { |
27 namespace { | 29 namespace { |
28 | 30 |
29 const base::Time kTestLastUsedTime = | 31 const base::Time kTestLastUsedTime = |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 | 101 |
100 static uint64_t HashesInitializer(size_t hash_index) { | 102 static uint64_t HashesInitializer(size_t hash_index) { |
101 return disk_cache::simple_util::GetEntryHashKey( | 103 return disk_cache::simple_util::GetEntryHashKey( |
102 base::StringPrintf("key%d", static_cast<int>(hash_index))); | 104 base::StringPrintf("key%d", static_cast<int>(hash_index))); |
103 } | 105 } |
104 | 106 |
105 void SetUp() override { | 107 void SetUp() override { |
106 scoped_ptr<MockSimpleIndexFile> index_file(new MockSimpleIndexFile()); | 108 scoped_ptr<MockSimpleIndexFile> index_file(new MockSimpleIndexFile()); |
107 index_file_ = index_file->AsWeakPtr(); | 109 index_file_ = index_file->AsWeakPtr(); |
108 index_.reset( | 110 index_.reset( |
109 new SimpleIndex(NULL, this, net::DISK_CACHE, index_file.Pass())); | 111 new SimpleIndex(NULL, this, net::DISK_CACHE, std::move(index_file))); |
110 | 112 |
111 index_->Initialize(base::Time()); | 113 index_->Initialize(base::Time()); |
112 } | 114 } |
113 | 115 |
114 void WaitForTimeChange() { | 116 void WaitForTimeChange() { |
115 const base::Time initial_time = base::Time::Now(); | 117 const base::Time initial_time = base::Time::Now(); |
116 do { | 118 do { |
117 base::PlatformThread::YieldCurrentThread(); | 119 base::PlatformThread::YieldCurrentThread(); |
118 } while (base::Time::Now() - | 120 } while (base::Time::Now() - |
119 initial_time < base::TimeDelta::FromSeconds(1)); | 121 initial_time < base::TimeDelta::FromSeconds(1)); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 index()->Insert(hashes_.at<2>()); | 202 index()->Insert(hashes_.at<2>()); |
201 index()->UpdateEntrySize(hashes_.at<2>(), 2); | 203 index()->UpdateEntrySize(hashes_.at<2>(), 2); |
202 index()->Insert(hashes_.at<3>()); | 204 index()->Insert(hashes_.at<3>()); |
203 index()->UpdateEntrySize(hashes_.at<3>(), 3); | 205 index()->UpdateEntrySize(hashes_.at<3>(), 3); |
204 index()->Insert(hashes_.at<4>()); | 206 index()->Insert(hashes_.at<4>()); |
205 index()->UpdateEntrySize(hashes_.at<4>(), 4); | 207 index()->UpdateEntrySize(hashes_.at<4>(), 4); |
206 EXPECT_EQ(9U, index()->cache_size_); | 208 EXPECT_EQ(9U, index()->cache_size_); |
207 { | 209 { |
208 scoped_ptr<SimpleIndexLoadResult> result(new SimpleIndexLoadResult()); | 210 scoped_ptr<SimpleIndexLoadResult> result(new SimpleIndexLoadResult()); |
209 result->did_load = true; | 211 result->did_load = true; |
210 index()->MergeInitializingSet(result.Pass()); | 212 index()->MergeInitializingSet(std::move(result)); |
211 } | 213 } |
212 EXPECT_EQ(9U, index()->cache_size_); | 214 EXPECT_EQ(9U, index()->cache_size_); |
213 { | 215 { |
214 scoped_ptr<SimpleIndexLoadResult> result(new SimpleIndexLoadResult()); | 216 scoped_ptr<SimpleIndexLoadResult> result(new SimpleIndexLoadResult()); |
215 result->did_load = true; | 217 result->did_load = true; |
216 const uint64_t new_hash_key = hashes_.at<11>(); | 218 const uint64_t new_hash_key = hashes_.at<11>(); |
217 result->entries.insert( | 219 result->entries.insert( |
218 std::make_pair(new_hash_key, EntryMetadata(base::Time::Now(), 11))); | 220 std::make_pair(new_hash_key, EntryMetadata(base::Time::Now(), 11))); |
219 const uint64_t redundant_hash_key = hashes_.at<4>(); | 221 const uint64_t redundant_hash_key = hashes_.at<4>(); |
220 result->entries.insert(std::make_pair(redundant_hash_key, | 222 result->entries.insert(std::make_pair(redundant_hash_key, |
221 EntryMetadata(base::Time::Now(), 4))); | 223 EntryMetadata(base::Time::Now(), 4))); |
222 index()->MergeInitializingSet(result.Pass()); | 224 index()->MergeInitializingSet(std::move(result)); |
223 } | 225 } |
224 EXPECT_EQ(2U + 3U + 4U + 11U, index()->cache_size_); | 226 EXPECT_EQ(2U + 3U + 4U + 11U, index()->cache_size_); |
225 } | 227 } |
226 | 228 |
227 // State of index changes as expected with an insert and a remove. | 229 // State of index changes as expected with an insert and a remove. |
228 TEST_F(SimpleIndexTest, BasicInsertRemove) { | 230 TEST_F(SimpleIndexTest, BasicInsertRemove) { |
229 // Confirm blank state. | 231 // Confirm blank state. |
230 EntryMetadata metadata; | 232 EntryMetadata metadata; |
231 EXPECT_EQ(base::Time(), metadata.GetLastUsedTime()); | 233 EXPECT_EQ(base::Time(), metadata.GetLastUsedTime()); |
232 EXPECT_EQ(0U, metadata.GetEntrySize()); | 234 EXPECT_EQ(0U, metadata.GetEntrySize()); |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 WaitForTimeChange(); | 619 WaitForTimeChange(); |
618 EXPECT_EQ(expected_trigger, index()->write_to_disk_timer_.desired_run_time()); | 620 EXPECT_EQ(expected_trigger, index()->write_to_disk_timer_.desired_run_time()); |
619 index()->Insert(hashes_.at<2>()); | 621 index()->Insert(hashes_.at<2>()); |
620 index()->UpdateEntrySize(hashes_.at<2>(), 40); | 622 index()->UpdateEntrySize(hashes_.at<2>(), 40); |
621 EXPECT_TRUE(index()->write_to_disk_timer_.IsRunning()); | 623 EXPECT_TRUE(index()->write_to_disk_timer_.IsRunning()); |
622 EXPECT_LT(expected_trigger, index()->write_to_disk_timer_.desired_run_time()); | 624 EXPECT_LT(expected_trigger, index()->write_to_disk_timer_.desired_run_time()); |
623 index()->write_to_disk_timer_.Stop(); | 625 index()->write_to_disk_timer_.Stop(); |
624 } | 626 } |
625 | 627 |
626 } // namespace disk_cache | 628 } // namespace disk_cache |
OLD | NEW |