OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/path_service.h" | 7 #include "base/path_service.h" |
8 #include "base/platform_thread.h" | 8 #include "base/platform_thread.h" |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "net/base/io_buffer.h" | 10 #include "net/base/io_buffer.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 | 36 |
37 // Verifies that we can recover a transaction (insert or remove on the rankings | 37 // Verifies that we can recover a transaction (insert or remove on the rankings |
38 // list) that is interrupted. | 38 // list) that is interrupted. |
39 int TestTransaction(const std::wstring& name, int num_entries, bool load) { | 39 int TestTransaction(const std::wstring& name, int num_entries, bool load) { |
40 if (!CopyTestCache(name)) | 40 if (!CopyTestCache(name)) |
41 return 1; | 41 return 1; |
42 std::wstring path = GetCachePath(); | 42 std::wstring path = GetCachePath(); |
43 scoped_ptr<disk_cache::Backend> cache; | 43 scoped_ptr<disk_cache::Backend> cache; |
44 | 44 |
45 if (!load) { | 45 if (!load) { |
46 cache.reset(disk_cache::CreateCacheBackend(path, false, 0)); | 46 cache.reset(disk_cache::CreateCacheBackend(path, false, 0, |
| 47 net::DISK_CACHE)); |
47 } else { | 48 } else { |
48 disk_cache::BackendImpl* cache2 = new disk_cache::BackendImpl(path, 0xf); | 49 disk_cache::BackendImpl* cache2 = new disk_cache::BackendImpl(path, 0xf); |
49 if (!cache2 || !cache2->SetMaxSize(0x100000) || !cache2->Init()) | 50 if (!cache2 || !cache2->SetMaxSize(0x100000) || !cache2->Init()) |
50 return 2; | 51 return 2; |
51 cache.reset(cache2); | 52 cache.reset(cache2); |
52 } | 53 } |
53 if (!cache.get()) | 54 if (!cache.get()) |
54 return 2; | 55 return 2; |
55 | 56 |
56 if (num_entries + 1 != cache->GetEntryCount()) | 57 if (num_entries + 1 != cache->GetEntryCount()) |
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 EXPECT_EQ(0, TestTransaction(L"remove_one4", 0, false)); | 781 EXPECT_EQ(0, TestTransaction(L"remove_one4", 0, false)); |
781 EXPECT_EQ(0, TestTransaction(L"remove_head4", 1, false)); | 782 EXPECT_EQ(0, TestTransaction(L"remove_head4", 1, false)); |
782 #endif | 783 #endif |
783 } | 784 } |
784 | 785 |
785 // Tests dealing with cache files that cannot be recovered. | 786 // Tests dealing with cache files that cannot be recovered. |
786 TEST_F(DiskCacheTest, Backend_DeleteOld) { | 787 TEST_F(DiskCacheTest, Backend_DeleteOld) { |
787 ASSERT_TRUE(CopyTestCache(L"wrong_version")); | 788 ASSERT_TRUE(CopyTestCache(L"wrong_version")); |
788 std::wstring path = GetCachePath(); | 789 std::wstring path = GetCachePath(); |
789 scoped_ptr<disk_cache::Backend> cache; | 790 scoped_ptr<disk_cache::Backend> cache; |
790 cache.reset(disk_cache::CreateCacheBackend(path, true, 0)); | 791 cache.reset(disk_cache::CreateCacheBackend(path, true, 0, net::DISK_CACHE)); |
791 | 792 |
792 MessageLoopHelper helper; | 793 MessageLoopHelper helper; |
793 | 794 |
794 ASSERT_TRUE(NULL != cache.get()); | 795 ASSERT_TRUE(NULL != cache.get()); |
795 ASSERT_EQ(0, cache->GetEntryCount()); | 796 ASSERT_EQ(0, cache->GetEntryCount()); |
796 | 797 |
797 // Wait for a callback that never comes... about 2 secs :). The message loop | 798 // Wait for a callback that never comes... about 2 secs :). The message loop |
798 // has to run to allow destruction of the cleaner thread. | 799 // has to run to allow destruction of the cleaner thread. |
799 helper.WaitUntilCacheIoFinished(1); | 800 helper.WaitUntilCacheIoFinished(1); |
800 } | 801 } |
801 | 802 |
802 // We want to be able to deal with messed up entries on disk. | 803 // We want to be able to deal with messed up entries on disk. |
803 TEST_F(DiskCacheTest, Backend_InvalidEntry) { | 804 TEST_F(DiskCacheTest, Backend_InvalidEntry) { |
804 ASSERT_TRUE(CopyTestCache(L"bad_entry")); | 805 ASSERT_TRUE(CopyTestCache(L"bad_entry")); |
805 std::wstring path = GetCachePath(); | 806 std::wstring path = GetCachePath(); |
806 disk_cache::Backend* cache = disk_cache::CreateCacheBackend(path, false, 0); | 807 disk_cache::Backend* cache = disk_cache::CreateCacheBackend(path, false, 0, |
| 808 net::DISK_CACHE); |
807 ASSERT_TRUE(NULL != cache); | 809 ASSERT_TRUE(NULL != cache); |
808 | 810 |
809 disk_cache::Entry *entry1, *entry2; | 811 disk_cache::Entry *entry1, *entry2; |
810 ASSERT_TRUE(cache->OpenEntry("the first key", &entry1)); | 812 ASSERT_TRUE(cache->OpenEntry("the first key", &entry1)); |
811 EXPECT_FALSE(cache->OpenEntry("some other key", &entry2)); | 813 EXPECT_FALSE(cache->OpenEntry("some other key", &entry2)); |
812 entry1->Close(); | 814 entry1->Close(); |
813 | 815 |
814 // CheckCacheIntegrity will fail at this point. | 816 // CheckCacheIntegrity will fail at this point. |
815 delete cache; | 817 delete cache; |
816 } | 818 } |
817 | 819 |
818 // We want to be able to deal with messed up entries on disk. | 820 // We want to be able to deal with messed up entries on disk. |
819 TEST_F(DiskCacheTest, Backend_InvalidRankings) { | 821 TEST_F(DiskCacheTest, Backend_InvalidRankings) { |
820 ASSERT_TRUE(CopyTestCache(L"bad_rankings")); | 822 ASSERT_TRUE(CopyTestCache(L"bad_rankings")); |
821 std::wstring path = GetCachePath(); | 823 std::wstring path = GetCachePath(); |
822 disk_cache::Backend* cache = disk_cache::CreateCacheBackend(path, false, 0); | 824 disk_cache::Backend* cache = disk_cache::CreateCacheBackend(path, false, 0, |
| 825 net::DISK_CACHE); |
823 ASSERT_TRUE(NULL != cache); | 826 ASSERT_TRUE(NULL != cache); |
824 | 827 |
825 disk_cache::Entry *entry1, *entry2; | 828 disk_cache::Entry *entry1, *entry2; |
826 EXPECT_FALSE(cache->OpenEntry("the first key", &entry1)); | 829 EXPECT_FALSE(cache->OpenEntry("the first key", &entry1)); |
827 ASSERT_TRUE(cache->OpenEntry("some other key", &entry2)); | 830 ASSERT_TRUE(cache->OpenEntry("some other key", &entry2)); |
828 entry2->Close(); | 831 entry2->Close(); |
829 | 832 |
830 // CheckCacheIntegrity will fail at this point. | 833 // CheckCacheIntegrity will fail at this point. |
831 delete cache; | 834 delete cache; |
832 } | 835 } |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 TEST_F(DiskCacheBackendTest, DoomAll) { | 988 TEST_F(DiskCacheBackendTest, DoomAll) { |
986 InitCache(); | 989 InitCache(); |
987 BackendDoomAll(); | 990 BackendDoomAll(); |
988 } | 991 } |
989 | 992 |
990 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomAll) { | 993 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomAll) { |
991 SetMemoryOnlyMode(); | 994 SetMemoryOnlyMode(); |
992 InitCache(); | 995 InitCache(); |
993 BackendDoomAll(); | 996 BackendDoomAll(); |
994 } | 997 } |
OLD | NEW |