| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
| 7 #include "base/port.h" | 7 #include "base/port.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
| 10 #include "base/third_party/dynamic_annotations/dynamic_annotations.h" | 10 #include "base/third_party/dynamic_annotations/dynamic_annotations.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 class DiskCacheBackendTest : public DiskCacheTestWithCache { | 38 class DiskCacheBackendTest : public DiskCacheTestWithCache { |
| 39 protected: | 39 protected: |
| 40 void BackendBasics(); | 40 void BackendBasics(); |
| 41 void BackendKeying(); | 41 void BackendKeying(); |
| 42 void BackendShutdownWithPendingFileIO(bool fast); | 42 void BackendShutdownWithPendingFileIO(bool fast); |
| 43 void BackendShutdownWithPendingIO(bool fast); | 43 void BackendShutdownWithPendingIO(bool fast); |
| 44 void BackendShutdownWithPendingCreate(bool fast); | 44 void BackendShutdownWithPendingCreate(bool fast); |
| 45 void BackendSetSize(); | 45 void BackendSetSize(); |
| 46 void BackendLoad(); | 46 void BackendLoad(); |
| 47 void BackendChain(); | 47 void BackendChain(); |
| 48 void BucketUse(); |
| 49 void BackendNewEvictionTrim(); |
| 48 void BackendValidEntry(); | 50 void BackendValidEntry(); |
| 49 void BackendInvalidEntry(); | 51 void BackendInvalidEntry(); |
| 50 void BackendInvalidEntryRead(); | 52 void BackendInvalidEntryRead(); |
| 51 void BackendInvalidEntryWithLoad(); | 53 void BackendInvalidEntryWithLoad(); |
| 52 void BackendTrimInvalidEntry(); | 54 void BackendTrimInvalidEntry(); |
| 53 void BackendTrimInvalidEntry2(); | 55 void BackendTrimInvalidEntry2(); |
| 54 void BackendEnumerations(); | 56 void BackendEnumerations(); |
| 55 void BackendEnumerations2(); | 57 void BackendEnumerations2(); |
| 56 void BackendInvalidEntryEnumeration(); | 58 void BackendInvalidEntryEnumeration(); |
| 57 void BackendFixEnumerators(); | 59 void BackendFixEnumerators(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 76 void BackendInvalidEntry11(bool eviction); | 78 void BackendInvalidEntry11(bool eviction); |
| 77 void BackendTrimInvalidEntry12(); | 79 void BackendTrimInvalidEntry12(); |
| 78 void BackendDoomAll(); | 80 void BackendDoomAll(); |
| 79 void BackendDoomAll2(); | 81 void BackendDoomAll2(); |
| 80 void BackendInvalidRankings(); | 82 void BackendInvalidRankings(); |
| 81 void BackendInvalidRankings2(); | 83 void BackendInvalidRankings2(); |
| 82 void BackendDisable(); | 84 void BackendDisable(); |
| 83 void BackendDisable2(); | 85 void BackendDisable2(); |
| 84 void BackendDisable3(); | 86 void BackendDisable3(); |
| 85 void BackendDisable4(); | 87 void BackendDisable4(); |
| 88 void BackendTotalBuffersSize1(); |
| 89 void BackendTotalBuffersSize2(); |
| 90 void BackendUpdateRankForExternalCacheHit(); |
| 86 void TracingBackendBasics(); | 91 void TracingBackendBasics(); |
| 87 }; | 92 }; |
| 88 | 93 |
| 89 void DiskCacheBackendTest::BackendBasics() { | 94 void DiskCacheBackendTest::BackendBasics() { |
| 90 InitCache(); | 95 InitCache(); |
| 91 disk_cache::Entry *entry1 = NULL, *entry2 = NULL; | 96 disk_cache::Entry *entry1 = NULL, *entry2 = NULL; |
| 92 EXPECT_NE(net::OK, OpenEntry("the first key", &entry1)); | 97 EXPECT_NE(net::OK, OpenEntry("the first key", &entry1)); |
| 93 ASSERT_EQ(net::OK, CreateEntry("the first key", &entry1)); | 98 ASSERT_EQ(net::OK, CreateEntry("the first key", &entry1)); |
| 94 ASSERT_TRUE(NULL != entry1); | 99 ASSERT_TRUE(NULL != entry1); |
| 95 entry1->Close(); | 100 entry1->Close(); |
| 96 entry1 = NULL; | 101 entry1 = NULL; |
| 97 | 102 |
| 98 ASSERT_EQ(net::OK, OpenEntry("the first key", &entry1)); | 103 ASSERT_EQ(net::OK, OpenEntry("the first key", &entry1)); |
| 99 ASSERT_TRUE(NULL != entry1); | 104 ASSERT_TRUE(NULL != entry1); |
| 100 entry1->Close(); | 105 entry1->Close(); |
| 101 entry1 = NULL; | 106 entry1 = NULL; |
| 102 | 107 |
| 103 EXPECT_NE(net::OK, CreateEntry("the first key", &entry1)); | 108 EXPECT_NE(net::OK, CreateEntry("the first key", &entry1)); |
| 104 ASSERT_EQ(net::OK, OpenEntry("the first key", &entry1)); | 109 ASSERT_EQ(net::OK, OpenEntry("the first key", &entry1)); |
| 105 EXPECT_NE(net::OK, OpenEntry("some other key", &entry2)); | 110 EXPECT_NE(net::OK, OpenEntry("some other key", &entry2)); |
| 106 ASSERT_EQ(net::OK, CreateEntry("some other key", &entry2)); | 111 ASSERT_EQ(net::OK, CreateEntry("some other key", &entry2)); |
| 107 ASSERT_TRUE(NULL != entry1); | 112 ASSERT_TRUE(NULL != entry1); |
| 108 ASSERT_TRUE(NULL != entry2); | 113 ASSERT_TRUE(NULL != entry2); |
| 109 EXPECT_EQ(2, cache_->GetEntryCount()); | 114 EXPECT_EQ(2, cache_->GetEntryCount()); |
| 110 | 115 |
| 111 disk_cache::Entry* entry3 = NULL; | 116 disk_cache::Entry* entry3 = NULL; |
| 112 ASSERT_EQ(net::OK, OpenEntry("some other key", &entry3)); | 117 ASSERT_EQ(net::OK, OpenEntry("some other key", &entry3)); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 TEST_F(DiskCacheBackendTest, AppCacheBasics) { | 154 TEST_F(DiskCacheBackendTest, AppCacheBasics) { |
| 150 SetCacheType(net::APP_CACHE); | 155 SetCacheType(net::APP_CACHE); |
| 151 BackendBasics(); | 156 BackendBasics(); |
| 152 } | 157 } |
| 153 | 158 |
| 154 TEST_F(DiskCacheBackendTest, ShaderCacheBasics) { | 159 TEST_F(DiskCacheBackendTest, ShaderCacheBasics) { |
| 155 SetCacheType(net::SHADER_CACHE); | 160 SetCacheType(net::SHADER_CACHE); |
| 156 BackendBasics(); | 161 BackendBasics(); |
| 157 } | 162 } |
| 158 | 163 |
| 164 TEST_F(DiskCacheBackendTest, V3Basics) { |
| 165 UseVersion3(); |
| 166 BackendBasics(); |
| 167 } |
| 168 |
| 159 void DiskCacheBackendTest::BackendKeying() { | 169 void DiskCacheBackendTest::BackendKeying() { |
| 160 InitCache(); | 170 InitCache(); |
| 161 const char* kName1 = "the first key"; | 171 const char* kName1 = "the first key"; |
| 162 const char* kName2 = "the first Key"; | 172 const char* kName2 = "the first Key"; |
| 163 disk_cache::Entry *entry1, *entry2; | 173 disk_cache::Entry *entry1, *entry2; |
| 164 ASSERT_EQ(net::OK, CreateEntry(kName1, &entry1)); | 174 ASSERT_EQ(net::OK, CreateEntry(kName1, &entry1)); |
| 165 | 175 |
| 166 ASSERT_EQ(net::OK, CreateEntry(kName2, &entry2)); | 176 ASSERT_EQ(net::OK, CreateEntry(kName2, &entry2)); |
| 167 EXPECT_TRUE(entry1 != entry2) << "Case sensitive"; | 177 EXPECT_TRUE(entry1 != entry2) << "Case sensitive"; |
| 168 entry2->Close(); | 178 entry2->Close(); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 194 buffer2[19999] = '\0'; | 204 buffer2[19999] = '\0'; |
| 195 ASSERT_EQ(net::OK, CreateEntry(buffer2, &entry2)) << "key on external file"; | 205 ASSERT_EQ(net::OK, CreateEntry(buffer2, &entry2)) << "key on external file"; |
| 196 entry2->Close(); | 206 entry2->Close(); |
| 197 entry1->Close(); | 207 entry1->Close(); |
| 198 } | 208 } |
| 199 | 209 |
| 200 TEST_F(DiskCacheBackendTest, Keying) { | 210 TEST_F(DiskCacheBackendTest, Keying) { |
| 201 BackendKeying(); | 211 BackendKeying(); |
| 202 } | 212 } |
| 203 | 213 |
| 214 TEST_F(DiskCacheBackendTest, V3Keying) { |
| 215 UseVersion3(); |
| 216 BackendKeying(); |
| 217 } |
| 218 |
| 204 TEST_F(DiskCacheBackendTest, NewEvictionKeying) { | 219 TEST_F(DiskCacheBackendTest, NewEvictionKeying) { |
| 205 SetNewEviction(); | 220 SetNewEviction(); |
| 206 BackendKeying(); | 221 BackendKeying(); |
| 207 } | 222 } |
| 208 | 223 |
| 224 TEST_F(DiskCacheBackendTest, V3NewEvictionKeying) { |
| 225 UseVersion3(); |
| 226 SetNewEviction(); |
| 227 BackendKeying(); |
| 228 } |
| 229 |
| 209 TEST_F(DiskCacheBackendTest, MemoryOnlyKeying) { | 230 TEST_F(DiskCacheBackendTest, MemoryOnlyKeying) { |
| 210 SetMemoryOnlyMode(); | 231 SetMemoryOnlyMode(); |
| 211 BackendKeying(); | 232 BackendKeying(); |
| 212 } | 233 } |
| 213 | 234 |
| 214 TEST_F(DiskCacheBackendTest, AppCacheKeying) { | 235 TEST_F(DiskCacheBackendTest, AppCacheKeying) { |
| 215 SetCacheType(net::APP_CACHE); | 236 SetCacheType(net::APP_CACHE); |
| 216 BackendKeying(); | 237 BackendKeying(); |
| 217 } | 238 } |
| 218 | 239 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 void DiskCacheBackendTest::BackendShutdownWithPendingFileIO(bool fast) { | 329 void DiskCacheBackendTest::BackendShutdownWithPendingFileIO(bool fast) { |
| 309 net::TestCompletionCallback cb; | 330 net::TestCompletionCallback cb; |
| 310 int rv; | 331 int rv; |
| 311 | 332 |
| 312 { | 333 { |
| 313 ASSERT_TRUE(CleanupCacheDir()); | 334 ASSERT_TRUE(CleanupCacheDir()); |
| 314 base::Thread cache_thread("CacheThread"); | 335 base::Thread cache_thread("CacheThread"); |
| 315 ASSERT_TRUE(cache_thread.StartWithOptions( | 336 ASSERT_TRUE(cache_thread.StartWithOptions( |
| 316 base::Thread::Options(MessageLoop::TYPE_IO, 0))); | 337 base::Thread::Options(MessageLoop::TYPE_IO, 0))); |
| 317 | 338 |
| 318 uint32 flags = disk_cache::kNoBuffering; | 339 if (fast) |
| 319 if (!fast) | 340 AvoidTestFlag(); |
| 320 flags |= disk_cache::kNoRandom; | |
| 321 | 341 |
| 322 UseCurrentThread(); | 342 UseCurrentThread(); |
| 323 CreateBackend(flags, NULL); | 343 CreateBackend(NULL); |
| 344 SetNoBuffering(); |
| 324 | 345 |
| 325 disk_cache::EntryImpl* entry; | 346 disk_cache::EntryImpl* entry; |
| 326 rv = cache_->CreateEntry( | 347 rv = cache_->CreateEntry( |
| 327 "some key", reinterpret_cast<disk_cache::Entry**>(&entry), | 348 "some key", reinterpret_cast<disk_cache::Entry**>(&entry), |
| 328 cb.callback()); | 349 cb.callback()); |
| 329 ASSERT_EQ(net::OK, cb.GetResult(rv)); | 350 ASSERT_EQ(net::OK, cb.GetResult(rv)); |
| 330 | 351 |
| 331 const int kSize = 25000; | 352 const int kSize = 25000; |
| 332 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize)); | 353 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize)); |
| 333 CacheTestFillBuffer(buffer->data(), kSize, false); | 354 CacheTestFillBuffer(buffer->data(), kSize, false); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 // Tests that we deal with background-thread pending operations. | 406 // Tests that we deal with background-thread pending operations. |
| 386 void DiskCacheBackendTest::BackendShutdownWithPendingIO(bool fast) { | 407 void DiskCacheBackendTest::BackendShutdownWithPendingIO(bool fast) { |
| 387 net::TestCompletionCallback cb; | 408 net::TestCompletionCallback cb; |
| 388 | 409 |
| 389 { | 410 { |
| 390 ASSERT_TRUE(CleanupCacheDir()); | 411 ASSERT_TRUE(CleanupCacheDir()); |
| 391 base::Thread cache_thread("CacheThread"); | 412 base::Thread cache_thread("CacheThread"); |
| 392 ASSERT_TRUE(cache_thread.StartWithOptions( | 413 ASSERT_TRUE(cache_thread.StartWithOptions( |
| 393 base::Thread::Options(MessageLoop::TYPE_IO, 0))); | 414 base::Thread::Options(MessageLoop::TYPE_IO, 0))); |
| 394 | 415 |
| 395 uint32 flags = disk_cache::kNoBuffering; | 416 if (fast) |
| 396 if (!fast) | 417 AvoidTestFlag(); |
| 397 flags |= disk_cache::kNoRandom; | |
| 398 | 418 |
| 399 CreateBackend(flags, &cache_thread); | 419 CreateBackend(&cache_thread); |
| 420 SetNoBuffering(); |
| 400 | 421 |
| 401 disk_cache::Entry* entry; | 422 disk_cache::Entry* entry; |
| 402 int rv = cache_->CreateEntry("some key", &entry, cb.callback()); | 423 int rv = cache_->CreateEntry("some key", &entry, cb.callback()); |
| 403 ASSERT_EQ(net::OK, cb.GetResult(rv)); | 424 ASSERT_EQ(net::OK, cb.GetResult(rv)); |
| 404 | 425 |
| 405 entry->Close(); | 426 entry->Close(); |
| 406 | 427 |
| 407 // The cache destructor will see one pending operation here. | 428 // The cache destructor will see one pending operation here. |
| 408 delete cache_; | 429 delete cache_; |
| 409 // Prevent the TearDown() to delete the backend again. | 430 // Prevent the TearDown() to delete the backend again. |
| (...skipping 18 matching lines...) Expand all Loading... |
| 428 // Tests that we deal with create-type pending operations. | 449 // Tests that we deal with create-type pending operations. |
| 429 void DiskCacheBackendTest::BackendShutdownWithPendingCreate(bool fast) { | 450 void DiskCacheBackendTest::BackendShutdownWithPendingCreate(bool fast) { |
| 430 net::TestCompletionCallback cb; | 451 net::TestCompletionCallback cb; |
| 431 | 452 |
| 432 { | 453 { |
| 433 ASSERT_TRUE(CleanupCacheDir()); | 454 ASSERT_TRUE(CleanupCacheDir()); |
| 434 base::Thread cache_thread("CacheThread"); | 455 base::Thread cache_thread("CacheThread"); |
| 435 ASSERT_TRUE(cache_thread.StartWithOptions( | 456 ASSERT_TRUE(cache_thread.StartWithOptions( |
| 436 base::Thread::Options(MessageLoop::TYPE_IO, 0))); | 457 base::Thread::Options(MessageLoop::TYPE_IO, 0))); |
| 437 | 458 |
| 438 disk_cache::BackendFlags flags = | 459 if (fast) |
| 439 fast ? disk_cache::kNone : disk_cache::kNoRandom; | 460 AvoidTestFlag(); |
| 440 CreateBackend(flags, &cache_thread); | 461 CreateBackend(&cache_thread); |
| 441 | 462 |
| 442 disk_cache::Entry* entry; | 463 disk_cache::Entry* entry; |
| 443 int rv = cache_->CreateEntry("some key", &entry, cb.callback()); | 464 int rv = cache_->CreateEntry("some key", &entry, cb.callback()); |
| 444 ASSERT_EQ(net::ERR_IO_PENDING, rv); | 465 ASSERT_EQ(net::ERR_IO_PENDING, rv); |
| 445 | 466 |
| 446 delete cache_; | 467 delete cache_; |
| 447 // Prevent the TearDown() to delete the backend again. | 468 // Prevent the TearDown() to delete the backend again. |
| 448 cache_ = NULL; | 469 cache_ = NULL; |
| 449 EXPECT_FALSE(cb.have_result()); | 470 EXPECT_FALSE(cb.have_result()); |
| 450 } | 471 } |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 | 537 |
| 517 SetMaxSize(cache_size); | 538 SetMaxSize(cache_size); |
| 518 | 539 |
| 519 // The cache is 95% full. | 540 // The cache is 95% full. |
| 520 | 541 |
| 521 ASSERT_EQ(net::OK, CreateEntry(second, &entry)); | 542 ASSERT_EQ(net::OK, CreateEntry(second, &entry)); |
| 522 EXPECT_EQ(cache_size / 10, WriteData(entry, 0, 0, buffer, cache_size / 10, | 543 EXPECT_EQ(cache_size / 10, WriteData(entry, 0, 0, buffer, cache_size / 10, |
| 523 false)); | 544 false)); |
| 524 | 545 |
| 525 disk_cache::Entry* entry2; | 546 disk_cache::Entry* entry2; |
| 526 ASSERT_EQ(net::OK, CreateEntry("an extra key", &entry2)); | 547 std::string extra_key("an extra key"); |
| 548 ASSERT_EQ(net::OK, CreateEntry(extra_key, &entry2)); |
| 527 EXPECT_EQ(cache_size / 10, WriteData(entry2, 0, 0, buffer, cache_size / 10, | 549 EXPECT_EQ(cache_size / 10, WriteData(entry2, 0, 0, buffer, cache_size / 10, |
| 528 false)); | 550 false)); |
| 529 entry2->Close(); // This will trigger the cache trim. | 551 entry2->Close(); // This will trigger the cache trim. |
| 530 | 552 WaitForEntryToClose(extra_key); |
| 531 EXPECT_NE(net::OK, OpenEntry(first, &entry2)); | |
| 532 | 553 |
| 533 FlushQueueForTest(); // Make sure that we are done trimming the cache. | 554 FlushQueueForTest(); // Make sure that we are done trimming the cache. |
| 534 FlushQueueForTest(); // We may have posted two tasks to evict stuff. | 555 FlushQueueForTest(); // We may have posted two tasks to evict stuff. |
| 535 | 556 |
| 536 entry->Close(); | 557 entry->Close(); |
| 558 WaitForEntryToClose(second); |
| 559 |
| 560 EXPECT_NE(net::OK, OpenEntry(first, &entry2)); |
| 537 ASSERT_EQ(net::OK, OpenEntry(second, &entry)); | 561 ASSERT_EQ(net::OK, OpenEntry(second, &entry)); |
| 538 EXPECT_EQ(cache_size / 10, entry->GetDataSize(0)); | 562 EXPECT_EQ(cache_size / 10, entry->GetDataSize(0)); |
| 539 entry->Close(); | 563 entry->Close(); |
| 540 } | 564 } |
| 541 | 565 |
| 542 TEST_F(DiskCacheBackendTest, SetSize) { | 566 TEST_F(DiskCacheBackendTest, SetSize) { |
| 543 BackendSetSize(); | 567 BackendSetSize(); |
| 544 } | 568 } |
| 545 | 569 |
| 570 TEST_F(DiskCacheBackendTest, V3SetSize) { |
| 571 UseVersion3(); |
| 572 UseVersion3(); |
| 573 SetNewEviction(); |
| 574 BackendSetSize(); |
| 575 } |
| 576 |
| 546 TEST_F(DiskCacheBackendTest, NewEvictionSetSize) { | 577 TEST_F(DiskCacheBackendTest, NewEvictionSetSize) { |
| 547 SetNewEviction(); | 578 SetNewEviction(); |
| 548 BackendSetSize(); | 579 BackendSetSize(); |
| 549 } | 580 } |
| 550 | 581 |
| 582 TEST_F(DiskCacheBackendTest, V3NewEvictionSetSize) { |
| 583 UseVersion3(); |
| 584 SetNewEviction(); |
| 585 BackendSetSize(); |
| 586 } |
| 587 |
| 551 TEST_F(DiskCacheBackendTest, MemoryOnlySetSize) { | 588 TEST_F(DiskCacheBackendTest, MemoryOnlySetSize) { |
| 552 SetMemoryOnlyMode(); | 589 SetMemoryOnlyMode(); |
| 553 BackendSetSize(); | 590 BackendSetSize(); |
| 554 } | 591 } |
| 555 | 592 |
| 556 void DiskCacheBackendTest::BackendLoad() { | 593 void DiskCacheBackendTest::BackendLoad() { |
| 557 InitCache(); | 594 InitCache(); |
| 558 int seed = static_cast<int>(Time::Now().ToInternalValue()); | 595 int seed = static_cast<int>(Time::Now().ToInternalValue()); |
| 559 srand(seed); | 596 srand(seed); |
| 560 | 597 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 647 TEST_F(DiskCacheBackendTest, AppCacheChain) { | 684 TEST_F(DiskCacheBackendTest, AppCacheChain) { |
| 648 SetCacheType(net::APP_CACHE); | 685 SetCacheType(net::APP_CACHE); |
| 649 BackendChain(); | 686 BackendChain(); |
| 650 } | 687 } |
| 651 | 688 |
| 652 TEST_F(DiskCacheBackendTest, ShaderCacheChain) { | 689 TEST_F(DiskCacheBackendTest, ShaderCacheChain) { |
| 653 SetCacheType(net::SHADER_CACHE); | 690 SetCacheType(net::SHADER_CACHE); |
| 654 BackendChain(); | 691 BackendChain(); |
| 655 } | 692 } |
| 656 | 693 |
| 657 TEST_F(DiskCacheBackendTest, NewEvictionTrim) { | 694 // Tests the proper use of cell buckets while the index grow. |
| 695 void DiskCacheBackendTest::BucketUse() { |
| 696 UseVersion3(); |
| 697 InitCache(); |
| 698 const int kNumEntries = 20; |
| 699 disk_cache::Entry* entries[kNumEntries]; |
| 700 std::string key("The first key"); |
| 701 |
| 702 // This generates kNumEntries collisions so the extra table has to be used. |
| 703 // There are only 2 extra buckets on the test setup, so the index has to grow. |
| 704 for (int i = 0; i < kNumEntries; i++) { |
| 705 ASSERT_EQ(net::OK, CreateEntry(key, &entries[i])); |
| 706 entries[i]->Doom(); |
| 707 FlushQueueForTest(); |
| 708 } |
| 709 |
| 710 for (int i = 0; i < kNumEntries / 2; i++) |
| 711 entries[i]->Close(); |
| 712 |
| 713 for (int i = 0; i < kNumEntries / 2; i++) { |
| 714 ASSERT_EQ(net::OK, CreateEntry(key, &entries[i])); |
| 715 entries[i]->Doom(); |
| 716 } |
| 717 |
| 718 for (int i = 0; i < kNumEntries; i++) |
| 719 entries[i]->Close(); |
| 720 } |
| 721 |
| 722 TEST_F(DiskCacheBackendTest, V3BucketUse) { |
| 723 BucketUse(); |
| 724 } |
| 725 |
| 726 TEST_F(DiskCacheBackendTest, V3DoubleIndexBucketUse) { |
| 727 PresetTestMode(); // Doubles the index instead of a slow growth. |
| 728 BucketUse(); |
| 729 } |
| 730 |
| 731 TEST_F(DiskCacheBackendTest, V3DoubleIndex) { |
| 732 UseVersion3(); |
| 733 PresetTestMode(); |
| 734 InitCache(); |
| 735 |
| 736 disk_cache::Entry* entry; |
| 737 const int kNumEntries = 200; |
| 738 for (int i = 0; i < kNumEntries; i++) { |
| 739 std::string name(base::StringPrintf("Key %d", i)); |
| 740 ASSERT_EQ(net::OK, CreateEntry(name, &entry)); |
| 741 entry->Close(); |
| 742 FlushQueueForTest(); |
| 743 } |
| 744 |
| 745 // Generate enough collisions to force growing the extra table (and with it, |
| 746 // the index). |
| 747 const int kNumSavedEntries = 5; |
| 748 disk_cache::Entry* entries[kNumSavedEntries]; |
| 749 std::string key("The first key"); |
| 750 for (int i = 0; i < kNumSavedEntries; i++) { |
| 751 ASSERT_EQ(net::OK, CreateEntry(key, &entries[i])); |
| 752 entries[i]->Doom(); |
| 753 FlushQueueForTest(); |
| 754 } |
| 755 |
| 756 for (int i = 0; i < kNumSavedEntries; i++) |
| 757 entries[i]->Close(); |
| 758 |
| 759 // Verify that all entries are there. |
| 760 for (int i = 0; i < kNumEntries; i++) { |
| 761 std::string name(base::StringPrintf("Key %d", i)); |
| 762 ASSERT_EQ(net::OK, OpenEntry(name, &entry)); |
| 763 entry->Close(); |
| 764 } |
| 765 } |
| 766 |
| 767 // This test leaks memory because it simulates a crash. |
| 768 TEST_F(DiskCacheBackendTest, DISABLED_V3Backup) { |
| 769 UseVersion3(); |
| 770 PresetTestMode(); |
| 771 InitCache(); |
| 772 |
| 773 disk_cache::Entry* entry; |
| 774 std::string name1("First entry"); |
| 775 ASSERT_EQ(net::OK, CreateEntry(name1, &entry)); |
| 776 entry->Close(); |
| 777 WaitForEntryToClose(name1); |
| 778 AddDelayForTest(40); |
| 779 |
| 780 std::string name2("Another entry"); |
| 781 ASSERT_EQ(net::OK, CreateEntry(name2, &entry)); |
| 782 |
| 783 SimulateCrash(); |
| 784 EXPECT_EQ(net::OK, OpenEntry(name1, &entry)); |
| 785 entry->Close(); |
| 786 EXPECT_NE(net::OK, OpenEntry(name2, &entry)); |
| 787 } |
| 788 |
| 789 void DiskCacheBackendTest::BackendNewEvictionTrim() { |
| 658 SetNewEviction(); | 790 SetNewEviction(); |
| 659 InitCache(); | 791 InitCache(); |
| 660 | 792 |
| 661 disk_cache::Entry* entry; | 793 disk_cache::Entry* entry; |
| 662 for (int i = 0; i < 100; i++) { | 794 for (int i = 0; i < 100; i++) { |
| 663 std::string name(base::StringPrintf("Key %d", i)); | 795 std::string name(base::StringPrintf("Key %d", i)); |
| 664 ASSERT_EQ(net::OK, CreateEntry(name, &entry)); | 796 ASSERT_EQ(net::OK, CreateEntry(name, &entry)); |
| 665 entry->Close(); | 797 entry->Close(); |
| 666 if (i < 90) { | 798 if (i < 90) { |
| 667 // Entries 0 to 89 are in list 1; 90 to 99 are in list 0. | 799 // Entries 0 to 89 are in list 1; 90 to 99 are in list 0. |
| 668 ASSERT_EQ(net::OK, OpenEntry(name, &entry)); | 800 ASSERT_EQ(net::OK, OpenEntry(name, &entry)); |
| 669 entry->Close(); | 801 entry->Close(); |
| 670 } | 802 } |
| 803 if (!(i % 10)) |
| 804 FlushQueueForTest(); |
| 805 |
| 806 if (i == 0 || i == 90) { |
| 807 WaitForEntryToClose(name); |
| 808 AddDelayForTest(70); |
| 809 } |
| 671 } | 810 } |
| 672 | 811 |
| 673 // The first eviction must come from list 1 (10% limit), the second must come | 812 // The first eviction must come from list 1 (10% limit), the second must come |
| 674 // from list 0. | 813 // from list 0. |
| 675 TrimForTest(false); | 814 TrimForTest(false); |
| 676 EXPECT_NE(net::OK, OpenEntry("Key 0", &entry)); | 815 EXPECT_NE(net::OK, OpenEntry("Key 0", &entry)); |
| 677 TrimForTest(false); | 816 TrimForTest(false); |
| 678 EXPECT_NE(net::OK, OpenEntry("Key 90", &entry)); | 817 EXPECT_NE(net::OK, OpenEntry("Key 90", &entry)); |
| 679 | 818 |
| 680 // Double check that we still have the list tails. | 819 // Double check that we still have the list tails. |
| 681 ASSERT_EQ(net::OK, OpenEntry("Key 1", &entry)); | 820 ASSERT_EQ(net::OK, OpenEntry("Key 1", &entry)); |
| 682 entry->Close(); | 821 entry->Close(); |
| 683 ASSERT_EQ(net::OK, OpenEntry("Key 91", &entry)); | 822 ASSERT_EQ(net::OK, OpenEntry("Key 91", &entry)); |
| 684 entry->Close(); | 823 entry->Close(); |
| 685 } | 824 } |
| 686 | 825 |
| 826 TEST_F(DiskCacheBackendTest, NewEvictionTrim) { |
| 827 BackendNewEvictionTrim(); |
| 828 } |
| 829 |
| 830 TEST_F(DiskCacheBackendTest, V3NewEvictionTrim) { |
| 831 UseVersion3(); |
| 832 BackendNewEvictionTrim(); |
| 833 } |
| 834 |
| 687 // Before looking for invalid entries, let's check a valid entry. | 835 // Before looking for invalid entries, let's check a valid entry. |
| 688 void DiskCacheBackendTest::BackendValidEntry() { | 836 void DiskCacheBackendTest::BackendValidEntry() { |
| 689 InitCache(); | 837 InitCache(); |
| 690 | 838 |
| 691 std::string key("Some key"); | 839 std::string key("Some key"); |
| 692 disk_cache::Entry* entry; | 840 disk_cache::Entry* entry; |
| 693 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); | 841 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); |
| 694 | 842 |
| 695 const int kSize = 50; | 843 const int kSize = 50; |
| 696 scoped_refptr<net::IOBuffer> buffer1(new net::IOBuffer(kSize)); | 844 scoped_refptr<net::IOBuffer> buffer1(new net::IOBuffer(kSize)); |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1011 Time initial = Time::Now(); | 1159 Time initial = Time::Now(); |
| 1012 int seed = static_cast<int>(initial.ToInternalValue()); | 1160 int seed = static_cast<int>(initial.ToInternalValue()); |
| 1013 srand(seed); | 1161 srand(seed); |
| 1014 | 1162 |
| 1015 const int kNumEntries = 100; | 1163 const int kNumEntries = 100; |
| 1016 for (int i = 0; i < kNumEntries; i++) { | 1164 for (int i = 0; i < kNumEntries; i++) { |
| 1017 std::string key = GenerateKey(true); | 1165 std::string key = GenerateKey(true); |
| 1018 disk_cache::Entry* entry; | 1166 disk_cache::Entry* entry; |
| 1019 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); | 1167 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); |
| 1020 entry->Close(); | 1168 entry->Close(); |
| 1169 if (!(i % 10)) |
| 1170 FlushQueueForTest(); |
| 1021 } | 1171 } |
| 1022 EXPECT_EQ(kNumEntries, cache_->GetEntryCount()); | 1172 EXPECT_EQ(kNumEntries, cache_->GetEntryCount()); |
| 1023 Time final = Time::Now(); | 1173 Time final = Time::Now(); |
| 1024 | 1174 |
| 1025 disk_cache::Entry* entry; | 1175 disk_cache::Entry* entry; |
| 1026 void* iter = NULL; | 1176 void* iter = NULL; |
| 1027 int count = 0; | 1177 int count = 0; |
| 1028 Time last_modified[kNumEntries]; | 1178 Time last_modified[kNumEntries]; |
| 1029 Time last_used[kNumEntries]; | 1179 Time last_used[kNumEntries]; |
| 1030 while (OpenNextEntry(&iter, &entry) == net::OK) { | 1180 while (OpenNextEntry(&iter, &entry) == net::OK) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1053 entry->Close(); | 1203 entry->Close(); |
| 1054 count++; | 1204 count++; |
| 1055 }; | 1205 }; |
| 1056 EXPECT_EQ(kNumEntries, count); | 1206 EXPECT_EQ(kNumEntries, count); |
| 1057 } | 1207 } |
| 1058 | 1208 |
| 1059 TEST_F(DiskCacheBackendTest, Enumerations) { | 1209 TEST_F(DiskCacheBackendTest, Enumerations) { |
| 1060 BackendEnumerations(); | 1210 BackendEnumerations(); |
| 1061 } | 1211 } |
| 1062 | 1212 |
| 1213 TEST_F(DiskCacheBackendTest, V3Enumerations) { |
| 1214 UseVersion3(); |
| 1215 BackendEnumerations(); |
| 1216 } |
| 1217 |
| 1063 TEST_F(DiskCacheBackendTest, NewEvictionEnumerations) { | 1218 TEST_F(DiskCacheBackendTest, NewEvictionEnumerations) { |
| 1064 SetNewEviction(); | 1219 SetNewEviction(); |
| 1065 BackendEnumerations(); | 1220 BackendEnumerations(); |
| 1066 } | 1221 } |
| 1067 | 1222 |
| 1223 TEST_F(DiskCacheBackendTest, V3NewEvictionEnumerations) { |
| 1224 UseVersion3(); |
| 1225 SetNewEviction(); |
| 1226 BackendEnumerations(); |
| 1227 } |
| 1228 |
| 1068 TEST_F(DiskCacheBackendTest, MemoryOnlyEnumerations) { | 1229 TEST_F(DiskCacheBackendTest, MemoryOnlyEnumerations) { |
| 1069 SetMemoryOnlyMode(); | 1230 SetMemoryOnlyMode(); |
| 1070 BackendEnumerations(); | 1231 BackendEnumerations(); |
| 1071 } | 1232 } |
| 1072 | 1233 |
| 1073 TEST_F(DiskCacheBackendTest, ShaderCacheEnumerations) { | 1234 TEST_F(DiskCacheBackendTest, ShaderCacheEnumerations) { |
| 1074 SetCacheType(net::SHADER_CACHE); | 1235 SetCacheType(net::SHADER_CACHE); |
| 1075 BackendEnumerations(); | 1236 BackendEnumerations(); |
| 1076 } | 1237 } |
| 1077 | 1238 |
| 1078 TEST_F(DiskCacheBackendTest, AppCacheEnumerations) { | 1239 TEST_F(DiskCacheBackendTest, AppCacheEnumerations) { |
| 1079 SetCacheType(net::APP_CACHE); | 1240 SetCacheType(net::APP_CACHE); |
| 1080 BackendEnumerations(); | 1241 BackendEnumerations(); |
| 1081 } | 1242 } |
| 1082 | 1243 |
| 1083 // Verifies enumerations while entries are open. | 1244 // Verifies enumerations while entries are open. |
| 1084 void DiskCacheBackendTest::BackendEnumerations2() { | 1245 void DiskCacheBackendTest::BackendEnumerations2() { |
| 1085 InitCache(); | 1246 InitCache(); |
| 1086 const std::string first("first"); | 1247 const std::string first("first"); |
| 1087 const std::string second("second"); | 1248 const std::string second("second"); |
| 1088 disk_cache::Entry *entry1, *entry2; | 1249 disk_cache::Entry *entry1, *entry2; |
| 1089 ASSERT_EQ(net::OK, CreateEntry(first, &entry1)); | 1250 ASSERT_EQ(net::OK, CreateEntry(first, &entry1)); |
| 1090 entry1->Close(); | 1251 entry1->Close(); |
| 1091 ASSERT_EQ(net::OK, CreateEntry(second, &entry2)); | 1252 ASSERT_EQ(net::OK, CreateEntry(second, &entry2)); |
| 1092 entry2->Close(); | 1253 entry2->Close(); |
| 1093 FlushQueueForTest(); | 1254 FlushQueueForTest(); |
| 1094 | 1255 |
| 1095 // Make sure that the timestamp is not the same. | 1256 // Make sure that the timestamp is not the same. |
| 1096 AddDelay(); | 1257 AddDelayForTest(70); |
| 1097 ASSERT_EQ(net::OK, OpenEntry(second, &entry1)); | 1258 ASSERT_EQ(net::OK, OpenEntry(second, &entry1)); |
| 1098 void* iter = NULL; | 1259 void* iter = NULL; |
| 1099 ASSERT_EQ(net::OK, OpenNextEntry(&iter, &entry2)); | 1260 ASSERT_EQ(net::OK, OpenNextEntry(&iter, &entry2)); |
| 1100 EXPECT_EQ(entry2->GetKey(), second); | 1261 EXPECT_EQ(entry2->GetKey(), second); |
| 1101 | 1262 |
| 1102 // Two entries and the iterator pointing at "first". | 1263 // Two entries and the iterator pointing at "first". |
| 1103 entry1->Close(); | 1264 entry1->Close(); |
| 1104 entry2->Close(); | 1265 entry2->Close(); |
| 1105 | 1266 |
| 1106 // The iterator should still be valid, so we should not crash. | 1267 // The iterator should still be valid, so we should not crash. |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1122 | 1283 |
| 1123 entry1->Close(); | 1284 entry1->Close(); |
| 1124 entry2->Close(); | 1285 entry2->Close(); |
| 1125 cache_->EndEnumeration(&iter); | 1286 cache_->EndEnumeration(&iter); |
| 1126 } | 1287 } |
| 1127 | 1288 |
| 1128 TEST_F(DiskCacheBackendTest, Enumerations2) { | 1289 TEST_F(DiskCacheBackendTest, Enumerations2) { |
| 1129 BackendEnumerations2(); | 1290 BackendEnumerations2(); |
| 1130 } | 1291 } |
| 1131 | 1292 |
| 1293 TEST_F(DiskCacheBackendTest, V3Enumerations2) { |
| 1294 UseVersion3(); |
| 1295 BackendEnumerations2(); |
| 1296 } |
| 1297 |
| 1132 TEST_F(DiskCacheBackendTest, NewEvictionEnumerations2) { | 1298 TEST_F(DiskCacheBackendTest, NewEvictionEnumerations2) { |
| 1133 SetNewEviction(); | 1299 SetNewEviction(); |
| 1134 BackendEnumerations2(); | 1300 BackendEnumerations2(); |
| 1135 } | 1301 } |
| 1136 | 1302 |
| 1303 TEST_F(DiskCacheBackendTest, V3NewEvictionEnumerations2) { |
| 1304 UseVersion3(); |
| 1305 SetNewEviction(); |
| 1306 BackendEnumerations2(); |
| 1307 } |
| 1308 |
| 1137 TEST_F(DiskCacheBackendTest, MemoryOnlyEnumerations2) { | 1309 TEST_F(DiskCacheBackendTest, MemoryOnlyEnumerations2) { |
| 1138 SetMemoryOnlyMode(); | 1310 SetMemoryOnlyMode(); |
| 1139 BackendEnumerations2(); | 1311 BackendEnumerations2(); |
| 1140 } | 1312 } |
| 1141 | 1313 |
| 1142 TEST_F(DiskCacheBackendTest, AppCacheEnumerations2) { | 1314 TEST_F(DiskCacheBackendTest, AppCacheEnumerations2) { |
| 1143 SetCacheType(net::APP_CACHE); | 1315 SetCacheType(net::APP_CACHE); |
| 1144 BackendEnumerations2(); | 1316 BackendEnumerations2(); |
| 1145 } | 1317 } |
| 1146 | 1318 |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1300 void DiskCacheBackendTest::BackendDoomRecent() { | 1472 void DiskCacheBackendTest::BackendDoomRecent() { |
| 1301 InitCache(); | 1473 InitCache(); |
| 1302 | 1474 |
| 1303 disk_cache::Entry *entry; | 1475 disk_cache::Entry *entry; |
| 1304 ASSERT_EQ(net::OK, CreateEntry("first", &entry)); | 1476 ASSERT_EQ(net::OK, CreateEntry("first", &entry)); |
| 1305 entry->Close(); | 1477 entry->Close(); |
| 1306 ASSERT_EQ(net::OK, CreateEntry("second", &entry)); | 1478 ASSERT_EQ(net::OK, CreateEntry("second", &entry)); |
| 1307 entry->Close(); | 1479 entry->Close(); |
| 1308 FlushQueueForTest(); | 1480 FlushQueueForTest(); |
| 1309 | 1481 |
| 1310 AddDelay(); | 1482 AddDelayForTest(70); |
| 1311 Time middle = Time::Now(); | 1483 Time middle = GetCurrentTime(); |
| 1312 | 1484 |
| 1313 ASSERT_EQ(net::OK, CreateEntry("third", &entry)); | 1485 ASSERT_EQ(net::OK, CreateEntry("third", &entry)); |
| 1314 entry->Close(); | 1486 entry->Close(); |
| 1315 ASSERT_EQ(net::OK, CreateEntry("fourth", &entry)); | 1487 ASSERT_EQ(net::OK, CreateEntry("fourth", &entry)); |
| 1316 entry->Close(); | 1488 entry->Close(); |
| 1317 FlushQueueForTest(); | 1489 FlushQueueForTest(); |
| 1318 | 1490 |
| 1319 AddDelay(); | 1491 AddDelayForTest(70); |
| 1320 Time final = Time::Now(); | 1492 Time final = GetCurrentTime(); |
| 1321 | 1493 |
| 1322 ASSERT_EQ(4, cache_->GetEntryCount()); | 1494 ASSERT_EQ(4, cache_->GetEntryCount()); |
| 1323 EXPECT_EQ(net::OK, DoomEntriesSince(final)); | 1495 EXPECT_EQ(net::OK, DoomEntriesSince(final)); |
| 1324 ASSERT_EQ(4, cache_->GetEntryCount()); | 1496 ASSERT_EQ(4, cache_->GetEntryCount()); |
| 1325 | 1497 |
| 1326 EXPECT_EQ(net::OK, DoomEntriesSince(middle)); | 1498 EXPECT_EQ(net::OK, DoomEntriesSince(middle)); |
| 1327 ASSERT_EQ(2, cache_->GetEntryCount()); | 1499 ASSERT_EQ(2, cache_->GetEntryCount()); |
| 1328 | 1500 |
| 1329 ASSERT_EQ(net::OK, OpenEntry("second", &entry)); | 1501 ASSERT_EQ(net::OK, OpenEntry("second", &entry)); |
| 1330 entry->Close(); | 1502 entry->Close(); |
| 1331 } | 1503 } |
| 1332 | 1504 |
| 1333 TEST_F(DiskCacheBackendTest, DoomRecent) { | 1505 TEST_F(DiskCacheBackendTest, DoomRecent) { |
| 1334 BackendDoomRecent(); | 1506 BackendDoomRecent(); |
| 1335 } | 1507 } |
| 1336 | 1508 |
| 1509 TEST_F(DiskCacheBackendTest, V3DoomRecent) { |
| 1510 UseVersion3(); |
| 1511 BackendDoomRecent(); |
| 1512 } |
| 1513 |
| 1337 TEST_F(DiskCacheBackendTest, NewEvictionDoomRecent) { | 1514 TEST_F(DiskCacheBackendTest, NewEvictionDoomRecent) { |
| 1338 SetNewEviction(); | 1515 SetNewEviction(); |
| 1339 BackendDoomRecent(); | 1516 BackendDoomRecent(); |
| 1340 } | 1517 } |
| 1341 | 1518 |
| 1519 TEST_F(DiskCacheBackendTest, V3NewEvictionDoomRecent) { |
| 1520 UseVersion3(); |
| 1521 SetNewEviction(); |
| 1522 BackendDoomRecent(); |
| 1523 } |
| 1524 |
| 1342 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomRecent) { | 1525 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomRecent) { |
| 1343 SetMemoryOnlyMode(); | 1526 SetMemoryOnlyMode(); |
| 1344 BackendDoomRecent(); | 1527 BackendDoomRecent(); |
| 1345 } | 1528 } |
| 1346 | 1529 |
| 1347 void DiskCacheBackendTest::InitSparseCache(base::Time* doomed_start, | 1530 void DiskCacheBackendTest::InitSparseCache(base::Time* doomed_start, |
| 1348 base::Time* doomed_end) { | 1531 base::Time* doomed_end) { |
| 1349 InitCache(); | 1532 InitCache(); |
| 1350 | 1533 |
| 1351 const int kSize = 50; | 1534 const int kSize = 50; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1419 TEST_F(DiskCacheBackendTest, DoomEntriesSinceSparse) { | 1602 TEST_F(DiskCacheBackendTest, DoomEntriesSinceSparse) { |
| 1420 base::Time start; | 1603 base::Time start; |
| 1421 InitSparseCache(&start, NULL); | 1604 InitSparseCache(&start, NULL); |
| 1422 DoomEntriesSince(start); | 1605 DoomEntriesSince(start); |
| 1423 // NOTE: BackendImpl counts child entries in its GetEntryCount(), while | 1606 // NOTE: BackendImpl counts child entries in its GetEntryCount(), while |
| 1424 // MemBackendImpl does not. Thats why expected value differs here from | 1607 // MemBackendImpl does not. Thats why expected value differs here from |
| 1425 // MemoryOnlyDoomEntriesSinceSparse. | 1608 // MemoryOnlyDoomEntriesSinceSparse. |
| 1426 EXPECT_EQ(3, cache_->GetEntryCount()); | 1609 EXPECT_EQ(3, cache_->GetEntryCount()); |
| 1427 } | 1610 } |
| 1428 | 1611 |
| 1612 TEST_F(DiskCacheBackendTest, V3DoomEntriesSinceSparse) { |
| 1613 base::Time start; |
| 1614 UseVersion3(); |
| 1615 InitSparseCache(&start, NULL); |
| 1616 DoomEntriesSince(start); |
| 1617 // NOTE: BackendImpl counts child entries in its GetEntryCount(), while |
| 1618 // MemBackendImpl does not. Thats why expected value differs here from |
| 1619 // MemoryOnlyDoomEntriesSinceSparse. |
| 1620 EXPECT_EQ(3, cache_->GetEntryCount()); |
| 1621 } |
| 1622 |
| 1429 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomAllSparse) { | 1623 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomAllSparse) { |
| 1430 SetMemoryOnlyMode(); | 1624 SetMemoryOnlyMode(); |
| 1431 InitSparseCache(NULL, NULL); | 1625 InitSparseCache(NULL, NULL); |
| 1432 EXPECT_EQ(net::OK, DoomAllEntries()); | 1626 EXPECT_EQ(net::OK, DoomAllEntries()); |
| 1433 EXPECT_EQ(0, cache_->GetEntryCount()); | 1627 EXPECT_EQ(0, cache_->GetEntryCount()); |
| 1434 } | 1628 } |
| 1435 | 1629 |
| 1436 TEST_F(DiskCacheBackendTest, DoomAllSparse) { | 1630 TEST_F(DiskCacheBackendTest, DoomAllSparse) { |
| 1437 InitSparseCache(NULL, NULL); | 1631 InitSparseCache(NULL, NULL); |
| 1438 EXPECT_EQ(net::OK, DoomAllEntries()); | 1632 EXPECT_EQ(net::OK, DoomAllEntries()); |
| 1439 EXPECT_EQ(0, cache_->GetEntryCount()); | 1633 EXPECT_EQ(0, cache_->GetEntryCount()); |
| 1440 } | 1634 } |
| 1441 | 1635 |
| 1636 TEST_F(DiskCacheBackendTest, V3DoomAllSparse) { |
| 1637 UseVersion3(); |
| 1638 InitSparseCache(NULL, NULL); |
| 1639 EXPECT_EQ(net::OK, DoomAllEntries()); |
| 1640 EXPECT_EQ(0, cache_->GetEntryCount()); |
| 1641 } |
| 1642 |
| 1442 void DiskCacheBackendTest::BackendDoomBetween() { | 1643 void DiskCacheBackendTest::BackendDoomBetween() { |
| 1443 InitCache(); | 1644 InitCache(); |
| 1444 | 1645 |
| 1445 disk_cache::Entry *entry; | 1646 disk_cache::Entry *entry; |
| 1446 ASSERT_EQ(net::OK, CreateEntry("first", &entry)); | 1647 ASSERT_EQ(net::OK, CreateEntry("first", &entry)); |
| 1447 entry->Close(); | 1648 entry->Close(); |
| 1448 FlushQueueForTest(); | 1649 FlushQueueForTest(); |
| 1449 | 1650 |
| 1450 AddDelay(); | 1651 AddDelay(); |
| 1451 Time middle_start = Time::Now(); | 1652 Time middle_start = Time::Now(); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1479 ASSERT_EQ(1, cache_->GetEntryCount()); | 1680 ASSERT_EQ(1, cache_->GetEntryCount()); |
| 1480 | 1681 |
| 1481 ASSERT_EQ(net::OK, OpenEntry("first", &entry)); | 1682 ASSERT_EQ(net::OK, OpenEntry("first", &entry)); |
| 1482 entry->Close(); | 1683 entry->Close(); |
| 1483 } | 1684 } |
| 1484 | 1685 |
| 1485 TEST_F(DiskCacheBackendTest, DoomBetween) { | 1686 TEST_F(DiskCacheBackendTest, DoomBetween) { |
| 1486 BackendDoomBetween(); | 1687 BackendDoomBetween(); |
| 1487 } | 1688 } |
| 1488 | 1689 |
| 1690 TEST_F(DiskCacheBackendTest, V3DoomBetween) { |
| 1691 UseVersion3(); |
| 1692 BackendDoomBetween(); |
| 1693 } |
| 1694 |
| 1489 TEST_F(DiskCacheBackendTest, NewEvictionDoomBetween) { | 1695 TEST_F(DiskCacheBackendTest, NewEvictionDoomBetween) { |
| 1490 SetNewEviction(); | 1696 SetNewEviction(); |
| 1491 BackendDoomBetween(); | 1697 BackendDoomBetween(); |
| 1492 } | 1698 } |
| 1493 | 1699 |
| 1700 TEST_F(DiskCacheBackendTest, V3NewEvictionDoomBetween) { |
| 1701 UseVersion3(); |
| 1702 SetNewEviction(); |
| 1703 BackendDoomBetween(); |
| 1704 } |
| 1705 |
| 1494 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomBetween) { | 1706 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomBetween) { |
| 1495 SetMemoryOnlyMode(); | 1707 SetMemoryOnlyMode(); |
| 1496 BackendDoomBetween(); | 1708 BackendDoomBetween(); |
| 1497 } | 1709 } |
| 1498 | 1710 |
| 1499 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomEntriesBetweenSparse) { | 1711 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomEntriesBetweenSparse) { |
| 1500 SetMemoryOnlyMode(); | 1712 SetMemoryOnlyMode(); |
| 1501 base::Time start, end; | 1713 base::Time start, end; |
| 1502 InitSparseCache(&start, &end); | 1714 InitSparseCache(&start, &end); |
| 1503 DoomEntriesBetween(start, end); | 1715 DoomEntriesBetween(start, end); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1514 InitSparseCache(&start, &end); | 1726 InitSparseCache(&start, &end); |
| 1515 DoomEntriesBetween(start, end); | 1727 DoomEntriesBetween(start, end); |
| 1516 EXPECT_EQ(9, cache_->GetEntryCount()); | 1728 EXPECT_EQ(9, cache_->GetEntryCount()); |
| 1517 | 1729 |
| 1518 start = end; | 1730 start = end; |
| 1519 end = base::Time::Now(); | 1731 end = base::Time::Now(); |
| 1520 DoomEntriesBetween(start, end); | 1732 DoomEntriesBetween(start, end); |
| 1521 EXPECT_EQ(3, cache_->GetEntryCount()); | 1733 EXPECT_EQ(3, cache_->GetEntryCount()); |
| 1522 } | 1734 } |
| 1523 | 1735 |
| 1736 TEST_F(DiskCacheBackendTest, V3DoomEntriesBetweenSparse) { |
| 1737 base::Time start, end; |
| 1738 UseVersion3(); |
| 1739 InitSparseCache(&start, &end); |
| 1740 DoomEntriesBetween(start, end); |
| 1741 EXPECT_EQ(9, cache_->GetEntryCount()); |
| 1742 |
| 1743 start = end; |
| 1744 end = base::Time::Now(); |
| 1745 DoomEntriesBetween(start, end); |
| 1746 EXPECT_EQ(3, cache_->GetEntryCount()); |
| 1747 } |
| 1748 |
| 1524 void DiskCacheBackendTest::BackendTransaction(const std::string& name, | 1749 void DiskCacheBackendTest::BackendTransaction(const std::string& name, |
| 1525 int num_entries, bool load) { | 1750 int num_entries, bool load) { |
| 1526 success_ = false; | 1751 success_ = false; |
| 1527 ASSERT_TRUE(CopyTestCache(name)); | 1752 ASSERT_TRUE(CopyTestCache(name)); |
| 1528 DisableFirstCleanup(); | 1753 DisableFirstCleanup(); |
| 1529 | 1754 |
| 1530 uint32 mask; | 1755 uint32 mask; |
| 1531 if (load) { | 1756 if (load) { |
| 1532 mask = 0xf; | 1757 mask = 0xf; |
| 1533 SetMaxSize(0x100000); | 1758 SetMaxSize(0x100000); |
| (...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2507 EXPECT_EQ(net::OK, DoomAllEntries()); | 2732 EXPECT_EQ(net::OK, DoomAllEntries()); |
| 2508 ASSERT_EQ(0, cache_->GetEntryCount()); | 2733 ASSERT_EQ(0, cache_->GetEntryCount()); |
| 2509 | 2734 |
| 2510 EXPECT_EQ(net::OK, DoomAllEntries()); | 2735 EXPECT_EQ(net::OK, DoomAllEntries()); |
| 2511 } | 2736 } |
| 2512 | 2737 |
| 2513 TEST_F(DiskCacheBackendTest, DoomAll) { | 2738 TEST_F(DiskCacheBackendTest, DoomAll) { |
| 2514 BackendDoomAll(); | 2739 BackendDoomAll(); |
| 2515 } | 2740 } |
| 2516 | 2741 |
| 2742 TEST_F(DiskCacheBackendTest, V3DoomAll) { |
| 2743 UseVersion3(); |
| 2744 BackendDoomAll(); |
| 2745 } |
| 2746 |
| 2517 TEST_F(DiskCacheBackendTest, NewEvictionDoomAll) { | 2747 TEST_F(DiskCacheBackendTest, NewEvictionDoomAll) { |
| 2518 SetNewEviction(); | 2748 SetNewEviction(); |
| 2519 BackendDoomAll(); | 2749 BackendDoomAll(); |
| 2520 } | 2750 } |
| 2521 | 2751 |
| 2752 TEST_F(DiskCacheBackendTest, V3NewEvictionDoomAll) { |
| 2753 UseVersion3(); |
| 2754 SetNewEviction(); |
| 2755 BackendDoomAll(); |
| 2756 } |
| 2757 |
| 2522 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomAll) { | 2758 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomAll) { |
| 2523 SetMemoryOnlyMode(); | 2759 SetMemoryOnlyMode(); |
| 2524 BackendDoomAll(); | 2760 BackendDoomAll(); |
| 2525 } | 2761 } |
| 2526 | 2762 |
| 2527 TEST_F(DiskCacheBackendTest, AppCacheOnlyDoomAll) { | 2763 TEST_F(DiskCacheBackendTest, AppCacheOnlyDoomAll) { |
| 2528 SetCacheType(net::APP_CACHE); | 2764 SetCacheType(net::APP_CACHE); |
| 2529 BackendDoomAll(); | 2765 BackendDoomAll(); |
| 2530 } | 2766 } |
| 2531 | 2767 |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2655 InitCache(); | 2891 InitCache(); |
| 2656 disk_cache::BackendImpl* backend_ = cache_impl_; // Needed be the macro. | 2892 disk_cache::BackendImpl* backend_ = cache_impl_; // Needed be the macro. |
| 2657 | 2893 |
| 2658 for (int i = 1; i < 3; i++) { | 2894 for (int i = 1; i < 3; i++) { |
| 2659 CACHE_UMA(HOURS, "FillupTime", i, 28); | 2895 CACHE_UMA(HOURS, "FillupTime", i, 28); |
| 2660 } | 2896 } |
| 2661 } | 2897 } |
| 2662 | 2898 |
| 2663 // Make sure that we keep the total memory used by the internal buffers under | 2899 // Make sure that we keep the total memory used by the internal buffers under |
| 2664 // control. | 2900 // control. |
| 2665 TEST_F(DiskCacheBackendTest, TotalBuffersSize1) { | 2901 void DiskCacheBackendTest::BackendTotalBuffersSize1() { |
| 2666 InitCache(); | 2902 InitCache(); |
| 2667 std::string key("the first key"); | 2903 std::string key("the first key"); |
| 2668 disk_cache::Entry* entry; | 2904 disk_cache::Entry* entry; |
| 2669 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); | 2905 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); |
| 2670 | 2906 |
| 2671 const int kSize = 200; | 2907 const int kSize = 200; |
| 2672 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize)); | 2908 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize)); |
| 2673 CacheTestFillBuffer(buffer->data(), kSize, true); | 2909 CacheTestFillBuffer(buffer->data(), kSize, true); |
| 2674 | 2910 |
| 2675 for (int i = 0; i < 10; i++) { | 2911 for (int i = 0; i < 10; i++) { |
| 2676 SCOPED_TRACE(i); | 2912 SCOPED_TRACE(i); |
| 2677 // Allocate 2MB for this entry. | 2913 // Allocate 2MB for this entry. |
| 2678 EXPECT_EQ(kSize, WriteData(entry, 0, 0, buffer, kSize, true)); | 2914 EXPECT_EQ(kSize, WriteData(entry, 0, 0, buffer, kSize, true)); |
| 2679 EXPECT_EQ(kSize, WriteData(entry, 1, 0, buffer, kSize, true)); | 2915 EXPECT_EQ(kSize, WriteData(entry, 1, 0, buffer, kSize, true)); |
| 2680 EXPECT_EQ(kSize, WriteData(entry, 0, 1024 * 1024, buffer, kSize, false)); | 2916 EXPECT_EQ(kSize, WriteData(entry, 0, 1024 * 1024, buffer, kSize, false)); |
| 2681 EXPECT_EQ(kSize, WriteData(entry, 1, 1024 * 1024, buffer, kSize, false)); | 2917 EXPECT_EQ(kSize, WriteData(entry, 1, 1024 * 1024, buffer, kSize, false)); |
| 2682 | 2918 |
| 2683 // Delete one of the buffers and truncate the other. | 2919 // Delete one of the buffers and truncate the other. |
| 2684 EXPECT_EQ(0, WriteData(entry, 0, 0, buffer, 0, true)); | 2920 EXPECT_EQ(0, WriteData(entry, 0, 0, buffer, 0, true)); |
| 2685 EXPECT_EQ(0, WriteData(entry, 1, 10, buffer, 0, true)); | 2921 EXPECT_EQ(0, WriteData(entry, 1, 10, buffer, 0, true)); |
| 2686 | 2922 |
| 2687 // Delete the second buffer, writing 10 bytes to disk. | 2923 // Delete the second buffer, writing 10 bytes to disk. |
| 2688 entry->Close(); | 2924 entry->Close(); |
| 2689 ASSERT_EQ(net::OK, OpenEntry(key, &entry)); | 2925 ASSERT_EQ(net::OK, OpenEntry(key, &entry)); |
| 2690 } | 2926 } |
| 2691 | 2927 |
| 2692 entry->Close(); | 2928 entry->Close(); |
| 2693 EXPECT_EQ(0, cache_impl_->GetTotalBuffersSize()); | 2929 EXPECT_EQ(0, GetTotalBuffersSize()); |
| 2930 } |
| 2931 |
| 2932 TEST_F(DiskCacheBackendTest, TotalBuffersSize1) { |
| 2933 BackendTotalBuffersSize1(); |
| 2934 } |
| 2935 |
| 2936 TEST_F(DiskCacheBackendTest, V3TotalBuffersSize1) { |
| 2937 UseVersion3(); |
| 2938 BackendTotalBuffersSize1(); |
| 2694 } | 2939 } |
| 2695 | 2940 |
| 2696 // This test assumes at least 150MB of system memory. | 2941 // This test assumes at least 150MB of system memory. |
| 2697 TEST_F(DiskCacheBackendTest, TotalBuffersSize2) { | 2942 void DiskCacheBackendTest::BackendTotalBuffersSize2() { |
| 2698 InitCache(); | 2943 InitCache(); |
| 2699 | 2944 |
| 2700 const int kOneMB = 1024 * 1024; | 2945 const int kOneMB = 1024 * 1024; |
| 2701 EXPECT_TRUE(cache_impl_->IsAllocAllowed(0, kOneMB)); | 2946 EXPECT_TRUE(IsAllocAllowed(0, kOneMB)); |
| 2702 EXPECT_EQ(kOneMB, cache_impl_->GetTotalBuffersSize()); | 2947 EXPECT_EQ(kOneMB, GetTotalBuffersSize()); |
| 2703 | 2948 |
| 2704 EXPECT_TRUE(cache_impl_->IsAllocAllowed(0, kOneMB)); | 2949 EXPECT_TRUE(IsAllocAllowed(0, kOneMB)); |
| 2705 EXPECT_EQ(kOneMB * 2, cache_impl_->GetTotalBuffersSize()); | 2950 EXPECT_EQ(kOneMB * 2, GetTotalBuffersSize()); |
| 2706 | 2951 |
| 2707 EXPECT_TRUE(cache_impl_->IsAllocAllowed(0, kOneMB)); | 2952 EXPECT_TRUE(IsAllocAllowed(0, kOneMB)); |
| 2708 EXPECT_EQ(kOneMB * 3, cache_impl_->GetTotalBuffersSize()); | 2953 EXPECT_EQ(kOneMB * 3, GetTotalBuffersSize()); |
| 2709 | 2954 |
| 2710 cache_impl_->BufferDeleted(kOneMB); | 2955 BufferDeleted(kOneMB); |
| 2711 EXPECT_EQ(kOneMB * 2, cache_impl_->GetTotalBuffersSize()); | 2956 EXPECT_EQ(kOneMB * 2, GetTotalBuffersSize()); |
| 2712 | 2957 |
| 2713 // Check the upper limit. | 2958 // Check the upper limit. |
| 2714 EXPECT_FALSE(cache_impl_->IsAllocAllowed(0, 30 * kOneMB)); | 2959 EXPECT_FALSE(IsAllocAllowed(0, 30 * kOneMB)); |
| 2715 | 2960 |
| 2716 for (int i = 0; i < 30; i++) | 2961 for (int i = 0; i < 30; i++) |
| 2717 cache_impl_->IsAllocAllowed(0, kOneMB); // Ignore the result. | 2962 IsAllocAllowed(0, kOneMB); // Ignore the result. |
| 2718 | 2963 |
| 2719 EXPECT_FALSE(cache_impl_->IsAllocAllowed(0, kOneMB)); | 2964 EXPECT_FALSE(IsAllocAllowed(0, kOneMB)); |
| 2965 } |
| 2966 |
| 2967 TEST_F(DiskCacheBackendTest, TotalBuffersSize2) { |
| 2968 BackendTotalBuffersSize2(); |
| 2969 } |
| 2970 |
| 2971 TEST_F(DiskCacheBackendTest, V3TotalBuffersSize2) { |
| 2972 UseVersion3(); |
| 2973 BackendTotalBuffersSize2(); |
| 2720 } | 2974 } |
| 2721 | 2975 |
| 2722 // Tests that sharing of external files works and we are able to delete the | 2976 // Tests that sharing of external files works and we are able to delete the |
| 2723 // files when we need to. | 2977 // files when we need to. |
| 2724 TEST_F(DiskCacheBackendTest, FileSharing) { | 2978 TEST_F(DiskCacheBackendTest, FileSharing) { |
| 2725 InitCache(); | 2979 InitCache(); |
| 2726 | 2980 |
| 2727 disk_cache::Addr address(0x80000001); | 2981 disk_cache::Addr address(0x80000001); |
| 2728 ASSERT_TRUE(cache_impl_->CreateExternalFile(&address)); | 2982 ASSERT_TRUE(cache_impl_->CreateExternalFile(&address)); |
| 2729 base::FilePath name = cache_impl_->GetFileName(address); | 2983 base::FilePath name = cache_impl_->GetFileName(address); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 2752 char buffer2[kSize]; | 3006 char buffer2[kSize]; |
| 2753 memset(buffer1, 't', kSize); | 3007 memset(buffer1, 't', kSize); |
| 2754 memset(buffer2, 0, kSize); | 3008 memset(buffer2, 0, kSize); |
| 2755 EXPECT_TRUE(file->Write(buffer1, kSize, 0)); | 3009 EXPECT_TRUE(file->Write(buffer1, kSize, 0)); |
| 2756 EXPECT_TRUE(file->Read(buffer2, kSize, 0)); | 3010 EXPECT_TRUE(file->Read(buffer2, kSize, 0)); |
| 2757 EXPECT_EQ(0, memcmp(buffer1, buffer2, kSize)); | 3011 EXPECT_EQ(0, memcmp(buffer1, buffer2, kSize)); |
| 2758 | 3012 |
| 2759 EXPECT_TRUE(disk_cache::DeleteCacheFile(name)); | 3013 EXPECT_TRUE(disk_cache::DeleteCacheFile(name)); |
| 2760 } | 3014 } |
| 2761 | 3015 |
| 2762 TEST_F(DiskCacheBackendTest, UpdateRankForExternalCacheHit) { | 3016 void DiskCacheBackendTest::BackendUpdateRankForExternalCacheHit() { |
| 2763 InitCache(); | 3017 InitCache(); |
| 2764 | 3018 |
| 2765 disk_cache::Entry* entry; | 3019 disk_cache::Entry* entry; |
| 2766 | 3020 |
| 2767 for (int i = 0; i < 2; ++i) { | 3021 for (int i = 0; i < 2; ++i) { |
| 2768 std::string key = base::StringPrintf("key%d", i); | 3022 std::string key = base::StringPrintf("key%d", i); |
| 2769 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); | 3023 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); |
| 2770 entry->Close(); | 3024 entry->Close(); |
| 3025 AddDelayForTest(70); |
| 2771 } | 3026 } |
| 3027 FlushQueueForTest(); |
| 2772 | 3028 |
| 2773 // Ping the oldest entry. | 3029 // Ping the oldest entry. |
| 3030 SetTestMode(); |
| 2774 cache_->OnExternalCacheHit("key0"); | 3031 cache_->OnExternalCacheHit("key0"); |
| 3032 FlushQueueForTest(); |
| 2775 | 3033 |
| 2776 TrimForTest(false); | 3034 TrimForTest(false); |
| 2777 | 3035 |
| 2778 // Make sure the older key remains. | 3036 // Make sure the older key remains. |
| 2779 EXPECT_EQ(1, cache_->GetEntryCount()); | 3037 EXPECT_NE(net::OK, OpenEntry("key1", &entry)); |
| 2780 ASSERT_EQ(net::OK, OpenEntry("key0", &entry)); | 3038 ASSERT_EQ(net::OK, OpenEntry("key0", &entry)); |
| 2781 entry->Close(); | 3039 entry->Close(); |
| 2782 } | 3040 } |
| 2783 | 3041 |
| 3042 TEST_F(DiskCacheBackendTest, UpdateRankForExternalCacheHit) { |
| 3043 BackendUpdateRankForExternalCacheHit(); |
| 3044 } |
| 3045 |
| 3046 TEST_F(DiskCacheBackendTest, V3UpdateRankForExternalCacheHit) { |
| 3047 UseVersion3(); |
| 3048 BackendUpdateRankForExternalCacheHit(); |
| 3049 } |
| 3050 |
| 2784 TEST_F(DiskCacheBackendTest, ShaderCacheUpdateRankForExternalCacheHit) { | 3051 TEST_F(DiskCacheBackendTest, ShaderCacheUpdateRankForExternalCacheHit) { |
| 2785 SetCacheType(net::SHADER_CACHE); | 3052 SetCacheType(net::SHADER_CACHE); |
| 2786 InitCache(); | 3053 BackendUpdateRankForExternalCacheHit(); |
| 3054 } |
| 2787 | 3055 |
| 2788 disk_cache::Entry* entry; | 3056 TEST_F(DiskCacheBackendTest, V3ShaderCacheUpdateRankForExternalCacheHit) { |
| 2789 | 3057 UseVersion3(); |
| 2790 for (int i = 0; i < 2; ++i) { | 3058 SetCacheType(net::SHADER_CACHE); |
| 2791 std::string key = base::StringPrintf("key%d", i); | 3059 BackendUpdateRankForExternalCacheHit(); |
| 2792 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); | |
| 2793 entry->Close(); | |
| 2794 } | |
| 2795 | |
| 2796 // Ping the oldest entry. | |
| 2797 cache_->OnExternalCacheHit("key0"); | |
| 2798 | |
| 2799 TrimForTest(false); | |
| 2800 | |
| 2801 // Make sure the older key remains. | |
| 2802 EXPECT_EQ(1, cache_->GetEntryCount()); | |
| 2803 ASSERT_EQ(net::OK, OpenEntry("key0", &entry)); | |
| 2804 entry->Close(); | |
| 2805 } | 3060 } |
| 2806 | 3061 |
| 2807 void DiskCacheBackendTest::TracingBackendBasics() { | 3062 void DiskCacheBackendTest::TracingBackendBasics() { |
| 2808 InitCache(); | 3063 InitCache(); |
| 2809 cache_ = new disk_cache::TracingCacheBackend(cache_); | 3064 cache_ = new disk_cache::TracingCacheBackend(cache_); |
| 2810 cache_impl_ = NULL; | 3065 cache_impl_ = NULL; |
| 2811 EXPECT_EQ(net::DISK_CACHE, cache_->GetCacheType()); | 3066 EXPECT_EQ(net::DISK_CACHE, cache_->GetCacheType()); |
| 2812 if (!simple_cache_mode_) { | 3067 if (!simple_cache_mode_) { |
| 2813 EXPECT_EQ(0, cache_->GetEntryCount()); | 3068 EXPECT_EQ(0, cache_->GetEntryCount()); |
| 2814 } | 3069 } |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3020 NULL); | 3275 NULL); |
| 3021 cache->SetUnitTestMode(); | 3276 cache->SetUnitTestMode(); |
| 3022 net::TestCompletionCallback cb; | 3277 net::TestCompletionCallback cb; |
| 3023 int rv = cache->Init(cb.callback()); | 3278 int rv = cache->Init(cb.callback()); |
| 3024 EXPECT_NE(net::OK, cb.GetResult(rv)); | 3279 EXPECT_NE(net::OK, cb.GetResult(rv)); |
| 3025 delete cache; | 3280 delete cache; |
| 3026 DisableIntegrityCheck(); | 3281 DisableIntegrityCheck(); |
| 3027 } | 3282 } |
| 3028 | 3283 |
| 3029 #endif // !defined(OS_WIN) | 3284 #endif // !defined(OS_WIN) |
| OLD | NEW |