| 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <functional> | 6 #include <functional> |
| 7 | 7 |
| 8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
| 9 #include "base/hash.h" | 9 #include "base/hash.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 #include "net/disk_cache/simple/simple_index_file.h" | 21 #include "net/disk_cache/simple/simple_index_file.h" |
| 22 #include "net/disk_cache/simple/simple_test_util.h" | 22 #include "net/disk_cache/simple/simple_test_util.h" |
| 23 #include "net/disk_cache/simple/simple_util.h" | 23 #include "net/disk_cache/simple/simple_util.h" |
| 24 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
| 25 | 25 |
| 26 namespace disk_cache { | 26 namespace disk_cache { |
| 27 namespace { | 27 namespace { |
| 28 | 28 |
| 29 const base::Time kTestLastUsedTime = | 29 const base::Time kTestLastUsedTime = |
| 30 base::Time::UnixEpoch() + base::TimeDelta::FromDays(20); | 30 base::Time::UnixEpoch() + base::TimeDelta::FromDays(20); |
| 31 const int kTestEntrySize = 789; | 31 const uint64 kTestEntrySize = 789; |
| 32 | 32 |
| 33 } // namespace | 33 } // namespace |
| 34 | 34 |
| 35 | 35 |
| 36 class EntryMetadataTest : public testing::Test { | 36 class EntryMetadataTest : public testing::Test { |
| 37 public: | 37 public: |
| 38 EntryMetadata NewEntryMetadataWithValues() { | 38 EntryMetadata NewEntryMetadataWithValues() { |
| 39 return EntryMetadata(kTestLastUsedTime, kTestEntrySize); | 39 return EntryMetadata(kTestLastUsedTime, kTestEntrySize); |
| 40 } | 40 } |
| 41 | 41 |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 scoped_ptr<SimpleIndex> index_; | 164 scoped_ptr<SimpleIndex> index_; |
| 165 base::WeakPtr<MockSimpleIndexFile> index_file_; | 165 base::WeakPtr<MockSimpleIndexFile> index_file_; |
| 166 | 166 |
| 167 std::vector<uint64> last_doom_entry_hashes_; | 167 std::vector<uint64> last_doom_entry_hashes_; |
| 168 int doom_entries_calls_; | 168 int doom_entries_calls_; |
| 169 }; | 169 }; |
| 170 | 170 |
| 171 TEST_F(EntryMetadataTest, Basics) { | 171 TEST_F(EntryMetadataTest, Basics) { |
| 172 EntryMetadata entry_metadata; | 172 EntryMetadata entry_metadata; |
| 173 EXPECT_EQ(base::Time(), entry_metadata.GetLastUsedTime()); | 173 EXPECT_EQ(base::Time(), entry_metadata.GetLastUsedTime()); |
| 174 EXPECT_EQ(0, entry_metadata.GetEntrySize()); | 174 EXPECT_EQ(0U, entry_metadata.GetEntrySize()); |
| 175 | 175 |
| 176 entry_metadata = NewEntryMetadataWithValues(); | 176 entry_metadata = NewEntryMetadataWithValues(); |
| 177 CheckEntryMetadataValues(entry_metadata); | 177 CheckEntryMetadataValues(entry_metadata); |
| 178 | 178 |
| 179 const base::Time new_time = base::Time::Now(); | 179 const base::Time new_time = base::Time::Now(); |
| 180 entry_metadata.SetLastUsedTime(new_time); | 180 entry_metadata.SetLastUsedTime(new_time); |
| 181 | 181 |
| 182 EXPECT_LT(new_time - base::TimeDelta::FromSeconds(2), | 182 EXPECT_LT(new_time - base::TimeDelta::FromSeconds(2), |
| 183 entry_metadata.GetLastUsedTime()); | 183 entry_metadata.GetLastUsedTime()); |
| 184 EXPECT_GT(new_time + base::TimeDelta::FromSeconds(2), | 184 EXPECT_GT(new_time + base::TimeDelta::FromSeconds(2), |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 index()->MergeInitializingSet(result.Pass()); | 224 index()->MergeInitializingSet(result.Pass()); |
| 225 } | 225 } |
| 226 EXPECT_EQ(2U + 3U + 4U + 11U, index()->cache_size_); | 226 EXPECT_EQ(2U + 3U + 4U + 11U, index()->cache_size_); |
| 227 } | 227 } |
| 228 | 228 |
| 229 // 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. |
| 230 TEST_F(SimpleIndexTest, BasicInsertRemove) { | 230 TEST_F(SimpleIndexTest, BasicInsertRemove) { |
| 231 // Confirm blank state. | 231 // Confirm blank state. |
| 232 EntryMetadata metadata; | 232 EntryMetadata metadata; |
| 233 EXPECT_EQ(base::Time(), metadata.GetLastUsedTime()); | 233 EXPECT_EQ(base::Time(), metadata.GetLastUsedTime()); |
| 234 EXPECT_EQ(0, metadata.GetEntrySize()); | 234 EXPECT_EQ(0U, metadata.GetEntrySize()); |
| 235 | 235 |
| 236 // Confirm state after insert. | 236 // Confirm state after insert. |
| 237 index()->Insert(hashes_.at<1>()); | 237 index()->Insert(hashes_.at<1>()); |
| 238 ASSERT_TRUE(GetEntryForTesting(hashes_.at<1>(), &metadata)); | 238 ASSERT_TRUE(GetEntryForTesting(hashes_.at<1>(), &metadata)); |
| 239 base::Time now(base::Time::Now()); | 239 base::Time now(base::Time::Now()); |
| 240 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 240 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 241 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 241 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 242 EXPECT_EQ(0, metadata.GetEntrySize()); | 242 EXPECT_EQ(0U, metadata.GetEntrySize()); |
| 243 | 243 |
| 244 // Confirm state after remove. | 244 // Confirm state after remove. |
| 245 metadata = EntryMetadata(); | 245 metadata = EntryMetadata(); |
| 246 index()->Remove(hashes_.at<1>()); | 246 index()->Remove(hashes_.at<1>()); |
| 247 EXPECT_FALSE(GetEntryForTesting(hashes_.at<1>(), &metadata)); | 247 EXPECT_FALSE(GetEntryForTesting(hashes_.at<1>(), &metadata)); |
| 248 EXPECT_EQ(base::Time(), metadata.GetLastUsedTime()); | 248 EXPECT_EQ(base::Time(), metadata.GetLastUsedTime()); |
| 249 EXPECT_EQ(0, metadata.GetEntrySize()); | 249 EXPECT_EQ(0U, metadata.GetEntrySize()); |
| 250 } | 250 } |
| 251 | 251 |
| 252 TEST_F(SimpleIndexTest, Has) { | 252 TEST_F(SimpleIndexTest, Has) { |
| 253 // Confirm the base index has dispatched the request for index entries. | 253 // Confirm the base index has dispatched the request for index entries. |
| 254 EXPECT_TRUE(index_file_.get()); | 254 EXPECT_TRUE(index_file_.get()); |
| 255 EXPECT_EQ(1, index_file_->load_index_entries_calls()); | 255 EXPECT_EQ(1, index_file_->load_index_entries_calls()); |
| 256 | 256 |
| 257 // Confirm "Has()" always returns true before the callback is called. | 257 // Confirm "Has()" always returns true before the callback is called. |
| 258 const uint64 kHash1 = hashes_.at<1>(); | 258 const uint64 kHash1 = hashes_.at<1>(); |
| 259 EXPECT_TRUE(index()->Has(kHash1)); | 259 EXPECT_TRUE(index()->Has(kHash1)); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 ReturnIndexFile(); | 323 ReturnIndexFile(); |
| 324 | 324 |
| 325 EntryMetadata metadata; | 325 EntryMetadata metadata; |
| 326 EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata)); | 326 EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata)); |
| 327 EXPECT_LT( | 327 EXPECT_LT( |
| 328 now - base::TimeDelta::FromDays(2) - base::TimeDelta::FromSeconds(1), | 328 now - base::TimeDelta::FromDays(2) - base::TimeDelta::FromSeconds(1), |
| 329 metadata.GetLastUsedTime()); | 329 metadata.GetLastUsedTime()); |
| 330 EXPECT_GT( | 330 EXPECT_GT( |
| 331 now - base::TimeDelta::FromDays(2) + base::TimeDelta::FromSeconds(1), | 331 now - base::TimeDelta::FromDays(2) + base::TimeDelta::FromSeconds(1), |
| 332 metadata.GetLastUsedTime()); | 332 metadata.GetLastUsedTime()); |
| 333 EXPECT_EQ(475, metadata.GetEntrySize()); | 333 EXPECT_EQ(475U, metadata.GetEntrySize()); |
| 334 | 334 |
| 335 index()->UpdateEntrySize(kHash1, 600u); | 335 index()->UpdateEntrySize(kHash1, 600u); |
| 336 EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata)); | 336 EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata)); |
| 337 EXPECT_EQ(600, metadata.GetEntrySize()); | 337 EXPECT_EQ(600U, metadata.GetEntrySize()); |
| 338 EXPECT_EQ(1, index()->GetEntryCount()); | 338 EXPECT_EQ(1, index()->GetEntryCount()); |
| 339 } | 339 } |
| 340 | 340 |
| 341 TEST_F(SimpleIndexTest, GetEntryCount) { | 341 TEST_F(SimpleIndexTest, GetEntryCount) { |
| 342 EXPECT_EQ(0, index()->GetEntryCount()); | 342 EXPECT_EQ(0, index()->GetEntryCount()); |
| 343 index()->Insert(hashes_.at<1>()); | 343 index()->Insert(hashes_.at<1>()); |
| 344 EXPECT_EQ(1, index()->GetEntryCount()); | 344 EXPECT_EQ(1, index()->GetEntryCount()); |
| 345 index()->Insert(hashes_.at<2>()); | 345 index()->Insert(hashes_.at<2>()); |
| 346 EXPECT_EQ(2, index()->GetEntryCount()); | 346 EXPECT_EQ(2, index()->GetEntryCount()); |
| 347 index()->Insert(hashes_.at<3>()); | 347 index()->Insert(hashes_.at<3>()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 376 ReturnIndexFile(); | 376 ReturnIndexFile(); |
| 377 | 377 |
| 378 EntryMetadata metadata; | 378 EntryMetadata metadata; |
| 379 EXPECT_TRUE(GetEntryForTesting(hashes_.at<1>(), &metadata)); | 379 EXPECT_TRUE(GetEntryForTesting(hashes_.at<1>(), &metadata)); |
| 380 EXPECT_LT( | 380 EXPECT_LT( |
| 381 now - base::TimeDelta::FromDays(2) - base::TimeDelta::FromSeconds(1), | 381 now - base::TimeDelta::FromDays(2) - base::TimeDelta::FromSeconds(1), |
| 382 metadata.GetLastUsedTime()); | 382 metadata.GetLastUsedTime()); |
| 383 EXPECT_GT( | 383 EXPECT_GT( |
| 384 now - base::TimeDelta::FromDays(2) + base::TimeDelta::FromSeconds(1), | 384 now - base::TimeDelta::FromDays(2) + base::TimeDelta::FromSeconds(1), |
| 385 metadata.GetLastUsedTime()); | 385 metadata.GetLastUsedTime()); |
| 386 EXPECT_EQ(10, metadata.GetEntrySize()); | 386 EXPECT_EQ(10U, metadata.GetEntrySize()); |
| 387 EXPECT_TRUE(GetEntryForTesting(hashes_.at<2>(), &metadata)); | 387 EXPECT_TRUE(GetEntryForTesting(hashes_.at<2>(), &metadata)); |
| 388 EXPECT_LT( | 388 EXPECT_LT( |
| 389 now - base::TimeDelta::FromDays(3) - base::TimeDelta::FromSeconds(1), | 389 now - base::TimeDelta::FromDays(3) - base::TimeDelta::FromSeconds(1), |
| 390 metadata.GetLastUsedTime()); | 390 metadata.GetLastUsedTime()); |
| 391 EXPECT_GT( | 391 EXPECT_GT( |
| 392 now - base::TimeDelta::FromDays(3) + base::TimeDelta::FromSeconds(1), | 392 now - base::TimeDelta::FromDays(3) + base::TimeDelta::FromSeconds(1), |
| 393 metadata.GetLastUsedTime()); | 393 metadata.GetLastUsedTime()); |
| 394 EXPECT_EQ(100, metadata.GetEntrySize()); | 394 EXPECT_EQ(100U, metadata.GetEntrySize()); |
| 395 } | 395 } |
| 396 | 396 |
| 397 // Remove something that's going to come in from the loaded index. | 397 // Remove something that's going to come in from the loaded index. |
| 398 TEST_F(SimpleIndexTest, RemoveBeforeInit) { | 398 TEST_F(SimpleIndexTest, RemoveBeforeInit) { |
| 399 const uint64 kHash1 = hashes_.at<1>(); | 399 const uint64 kHash1 = hashes_.at<1>(); |
| 400 index()->Remove(kHash1); | 400 index()->Remove(kHash1); |
| 401 | 401 |
| 402 InsertIntoIndexFileReturn(kHash1, | 402 InsertIntoIndexFileReturn(kHash1, |
| 403 base::Time::Now() - base::TimeDelta::FromDays(2), | 403 base::Time::Now() - base::TimeDelta::FromDays(2), |
| 404 10u); | 404 10u); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 416 InsertIntoIndexFileReturn(kHash1, | 416 InsertIntoIndexFileReturn(kHash1, |
| 417 base::Time::Now() - base::TimeDelta::FromDays(2), | 417 base::Time::Now() - base::TimeDelta::FromDays(2), |
| 418 10u); | 418 10u); |
| 419 ReturnIndexFile(); | 419 ReturnIndexFile(); |
| 420 | 420 |
| 421 EntryMetadata metadata; | 421 EntryMetadata metadata; |
| 422 EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata)); | 422 EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata)); |
| 423 base::Time now(base::Time::Now()); | 423 base::Time now(base::Time::Now()); |
| 424 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 424 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 425 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 425 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 426 EXPECT_EQ(0, metadata.GetEntrySize()); | 426 EXPECT_EQ(0U, metadata.GetEntrySize()); |
| 427 } | 427 } |
| 428 | 428 |
| 429 // Insert and Remove something that's going to come in from the loaded index. | 429 // Insert and Remove something that's going to come in from the loaded index. |
| 430 TEST_F(SimpleIndexTest, InsertRemoveBeforeInit) { | 430 TEST_F(SimpleIndexTest, InsertRemoveBeforeInit) { |
| 431 const uint64 kHash1 = hashes_.at<1>(); | 431 const uint64 kHash1 = hashes_.at<1>(); |
| 432 index()->Insert(kHash1); | 432 index()->Insert(kHash1); |
| 433 index()->Remove(kHash1); | 433 index()->Remove(kHash1); |
| 434 | 434 |
| 435 InsertIntoIndexFileReturn(kHash1, | 435 InsertIntoIndexFileReturn(kHash1, |
| 436 base::Time::Now() - base::TimeDelta::FromDays(2), | 436 base::Time::Now() - base::TimeDelta::FromDays(2), |
| (...skipping 12 matching lines...) Expand all Loading... |
| 449 InsertIntoIndexFileReturn(kHash1, | 449 InsertIntoIndexFileReturn(kHash1, |
| 450 base::Time::Now() - base::TimeDelta::FromDays(2), | 450 base::Time::Now() - base::TimeDelta::FromDays(2), |
| 451 10u); | 451 10u); |
| 452 ReturnIndexFile(); | 452 ReturnIndexFile(); |
| 453 | 453 |
| 454 EntryMetadata metadata; | 454 EntryMetadata metadata; |
| 455 EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata)); | 455 EXPECT_TRUE(GetEntryForTesting(kHash1, &metadata)); |
| 456 base::Time now(base::Time::Now()); | 456 base::Time now(base::Time::Now()); |
| 457 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 457 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 458 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 458 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 459 EXPECT_EQ(0, metadata.GetEntrySize()); | 459 EXPECT_EQ(0U, metadata.GetEntrySize()); |
| 460 } | 460 } |
| 461 | 461 |
| 462 // Do all above tests at once + a non-conflict to test for cross-key | 462 // Do all above tests at once + a non-conflict to test for cross-key |
| 463 // interactions. | 463 // interactions. |
| 464 TEST_F(SimpleIndexTest, AllInitConflicts) { | 464 TEST_F(SimpleIndexTest, AllInitConflicts) { |
| 465 base::Time now(base::Time::Now()); | 465 base::Time now(base::Time::Now()); |
| 466 | 466 |
| 467 index()->Remove(hashes_.at<1>()); | 467 index()->Remove(hashes_.at<1>()); |
| 468 InsertIntoIndexFileReturn(hashes_.at<1>(), | 468 InsertIntoIndexFileReturn(hashes_.at<1>(), |
| 469 now - base::TimeDelta::FromDays(2), | 469 now - base::TimeDelta::FromDays(2), |
| (...skipping 17 matching lines...) Expand all Loading... |
| 487 100000u); | 487 100000u); |
| 488 | 488 |
| 489 ReturnIndexFile(); | 489 ReturnIndexFile(); |
| 490 | 490 |
| 491 EXPECT_FALSE(index()->Has(hashes_.at<1>())); | 491 EXPECT_FALSE(index()->Has(hashes_.at<1>())); |
| 492 | 492 |
| 493 EntryMetadata metadata; | 493 EntryMetadata metadata; |
| 494 EXPECT_TRUE(GetEntryForTesting(hashes_.at<2>(), &metadata)); | 494 EXPECT_TRUE(GetEntryForTesting(hashes_.at<2>(), &metadata)); |
| 495 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 495 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 496 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 496 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 497 EXPECT_EQ(0, metadata.GetEntrySize()); | 497 EXPECT_EQ(0U, metadata.GetEntrySize()); |
| 498 | 498 |
| 499 EXPECT_FALSE(index()->Has(hashes_.at<3>())); | 499 EXPECT_FALSE(index()->Has(hashes_.at<3>())); |
| 500 | 500 |
| 501 EXPECT_TRUE(GetEntryForTesting(hashes_.at<4>(), &metadata)); | 501 EXPECT_TRUE(GetEntryForTesting(hashes_.at<4>(), &metadata)); |
| 502 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 502 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 503 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); | 503 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), metadata.GetLastUsedTime()); |
| 504 EXPECT_EQ(0, metadata.GetEntrySize()); | 504 EXPECT_EQ(0U, metadata.GetEntrySize()); |
| 505 | 505 |
| 506 EXPECT_TRUE(GetEntryForTesting(hashes_.at<5>(), &metadata)); | 506 EXPECT_TRUE(GetEntryForTesting(hashes_.at<5>(), &metadata)); |
| 507 | 507 |
| 508 EXPECT_GT( | 508 EXPECT_GT( |
| 509 now - base::TimeDelta::FromDays(6) + base::TimeDelta::FromSeconds(1), | 509 now - base::TimeDelta::FromDays(6) + base::TimeDelta::FromSeconds(1), |
| 510 metadata.GetLastUsedTime()); | 510 metadata.GetLastUsedTime()); |
| 511 EXPECT_LT( | 511 EXPECT_LT( |
| 512 now - base::TimeDelta::FromDays(6) - base::TimeDelta::FromSeconds(1), | 512 now - base::TimeDelta::FromDays(6) - base::TimeDelta::FromSeconds(1), |
| 513 metadata.GetLastUsedTime()); | 513 metadata.GetLastUsedTime()); |
| 514 | 514 |
| 515 EXPECT_EQ(100000, metadata.GetEntrySize()); | 515 EXPECT_EQ(100000U, metadata.GetEntrySize()); |
| 516 } | 516 } |
| 517 | 517 |
| 518 TEST_F(SimpleIndexTest, BasicEviction) { | 518 TEST_F(SimpleIndexTest, BasicEviction) { |
| 519 base::Time now(base::Time::Now()); | 519 base::Time now(base::Time::Now()); |
| 520 index()->SetMaxSize(1000); | 520 index()->SetMaxSize(1000); |
| 521 InsertIntoIndexFileReturn(hashes_.at<1>(), | 521 InsertIntoIndexFileReturn(hashes_.at<1>(), |
| 522 now - base::TimeDelta::FromDays(2), | 522 now - base::TimeDelta::FromDays(2), |
| 523 475u); | 523 475u); |
| 524 index()->Insert(hashes_.at<2>()); | 524 index()->Insert(hashes_.at<2>()); |
| 525 index()->UpdateEntrySize(hashes_.at<2>(), 475); | 525 index()->UpdateEntrySize(hashes_.at<2>(), 475); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 SimpleIndex::EntrySet entry_set; | 594 SimpleIndex::EntrySet entry_set; |
| 595 index_file_->GetAndResetDiskWriteEntrySet(&entry_set); | 595 index_file_->GetAndResetDiskWriteEntrySet(&entry_set); |
| 596 | 596 |
| 597 uint64 hash_key = kHash1; | 597 uint64 hash_key = kHash1; |
| 598 base::Time now(base::Time::Now()); | 598 base::Time now(base::Time::Now()); |
| 599 ASSERT_EQ(1u, entry_set.size()); | 599 ASSERT_EQ(1u, entry_set.size()); |
| 600 EXPECT_EQ(hash_key, entry_set.begin()->first); | 600 EXPECT_EQ(hash_key, entry_set.begin()->first); |
| 601 const EntryMetadata& entry1(entry_set.begin()->second); | 601 const EntryMetadata& entry1(entry_set.begin()->second); |
| 602 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), entry1.GetLastUsedTime()); | 602 EXPECT_LT(now - base::TimeDelta::FromMinutes(1), entry1.GetLastUsedTime()); |
| 603 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), entry1.GetLastUsedTime()); | 603 EXPECT_GT(now + base::TimeDelta::FromMinutes(1), entry1.GetLastUsedTime()); |
| 604 EXPECT_EQ(20, entry1.GetEntrySize()); | 604 EXPECT_EQ(20U, entry1.GetEntrySize()); |
| 605 } | 605 } |
| 606 | 606 |
| 607 TEST_F(SimpleIndexTest, DiskWritePostponed) { | 607 TEST_F(SimpleIndexTest, DiskWritePostponed) { |
| 608 index()->SetMaxSize(1000); | 608 index()->SetMaxSize(1000); |
| 609 ReturnIndexFile(); | 609 ReturnIndexFile(); |
| 610 | 610 |
| 611 EXPECT_FALSE(index()->write_to_disk_timer_.IsRunning()); | 611 EXPECT_FALSE(index()->write_to_disk_timer_.IsRunning()); |
| 612 | 612 |
| 613 index()->Insert(hashes_.at<1>()); | 613 index()->Insert(hashes_.at<1>()); |
| 614 index()->UpdateEntrySize(hashes_.at<1>(), 20); | 614 index()->UpdateEntrySize(hashes_.at<1>(), 20); |
| 615 EXPECT_TRUE(index()->write_to_disk_timer_.IsRunning()); | 615 EXPECT_TRUE(index()->write_to_disk_timer_.IsRunning()); |
| 616 base::TimeTicks expected_trigger( | 616 base::TimeTicks expected_trigger( |
| 617 index()->write_to_disk_timer_.desired_run_time()); | 617 index()->write_to_disk_timer_.desired_run_time()); |
| 618 | 618 |
| 619 WaitForTimeChange(); | 619 WaitForTimeChange(); |
| 620 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()); |
| 621 index()->Insert(hashes_.at<2>()); | 621 index()->Insert(hashes_.at<2>()); |
| 622 index()->UpdateEntrySize(hashes_.at<2>(), 40); | 622 index()->UpdateEntrySize(hashes_.at<2>(), 40); |
| 623 EXPECT_TRUE(index()->write_to_disk_timer_.IsRunning()); | 623 EXPECT_TRUE(index()->write_to_disk_timer_.IsRunning()); |
| 624 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()); |
| 625 index()->write_to_disk_timer_.Stop(); | 625 index()->write_to_disk_timer_.Stop(); |
| 626 } | 626 } |
| 627 | 627 |
| 628 } // namespace disk_cache | 628 } // namespace disk_cache |
| OLD | NEW |