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

Side by Side Diff: net/disk_cache/backend_unittest.cc

Issue 165030: Disk Cache: Don't depend on the backend being enabled to... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 4 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | net/disk_cache/entry_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 void BackendRecoverRemove(); 60 void BackendRecoverRemove();
61 void BackendInvalidEntry2(); 61 void BackendInvalidEntry2();
62 void BackendNotMarkedButDirty(const std::wstring& name); 62 void BackendNotMarkedButDirty(const std::wstring& name);
63 void BackendDoomAll(); 63 void BackendDoomAll();
64 void BackendDoomAll2(); 64 void BackendDoomAll2();
65 void BackendInvalidRankings(); 65 void BackendInvalidRankings();
66 void BackendInvalidRankings2(); 66 void BackendInvalidRankings2();
67 void BackendDisable(); 67 void BackendDisable();
68 void BackendDisable2(); 68 void BackendDisable2();
69 void BackendDisable3(); 69 void BackendDisable3();
70 void BackendDisable4();
70 }; 71 };
71 72
72 void DiskCacheBackendTest::BackendBasics() { 73 void DiskCacheBackendTest::BackendBasics() {
73 InitCache(); 74 InitCache();
74 disk_cache::Entry *entry1 = NULL, *entry2 = NULL; 75 disk_cache::Entry *entry1 = NULL, *entry2 = NULL;
75 EXPECT_FALSE(cache_->OpenEntry("the first key", &entry1)); 76 EXPECT_FALSE(cache_->OpenEntry("the first key", &entry1));
76 ASSERT_TRUE(cache_->CreateEntry("the first key", &entry1)); 77 ASSERT_TRUE(cache_->CreateEntry("the first key", &entry1));
77 ASSERT_TRUE(NULL != entry1); 78 ASSERT_TRUE(NULL != entry1);
78 entry1->Close(); 79 entry1->Close();
79 entry1 = NULL; 80 entry1 = NULL;
(...skipping 1237 matching lines...) Expand 10 before | Expand all | Expand 10 after
1317 1318
1318 TEST_F(DiskCacheBackendTest, NewEvictionDisableSuccess3) { 1319 TEST_F(DiskCacheBackendTest, NewEvictionDisableSuccess3) {
1319 ASSERT_TRUE(CopyTestCache(L"bad_rankings2")); 1320 ASSERT_TRUE(CopyTestCache(L"bad_rankings2"));
1320 DisableFirstCleanup(); 1321 DisableFirstCleanup();
1321 SetMaxSize(20 * 1024 * 1024); 1322 SetMaxSize(20 * 1024 * 1024);
1322 SetNewEviction(); 1323 SetNewEviction();
1323 InitCache(); 1324 InitCache();
1324 BackendDisable3(); 1325 BackendDisable3();
1325 } 1326 }
1326 1327
1328 // If we disable the cache, already open entries should work as far as possible.
1329 void DiskCacheBackendTest::BackendDisable4() {
1330 disk_cache::Entry *entry1, *entry2, *entry3, *entry4;
1331 void* iter = NULL;
1332 ASSERT_TRUE(cache_->OpenNextEntry(&iter, &entry1));
1333
1334 char key2[2000];
1335 char key3[20000];
1336 CacheTestFillBuffer(key2, sizeof(key2), true);
1337 CacheTestFillBuffer(key3, sizeof(key3), true);
1338 key2[sizeof(key2) - 1] = '\0';
1339 key3[sizeof(key3) - 1] = '\0';
1340 ASSERT_TRUE(cache_->CreateEntry(key2, &entry2));
1341 ASSERT_TRUE(cache_->CreateEntry(key3, &entry3));
1342
1343 const int kBufSize = 20000;
1344 scoped_refptr<net::IOBuffer> buf = new net::IOBuffer(kBufSize);
1345 memset(buf->data(), 0, kBufSize);
1346 EXPECT_EQ(100, entry2->WriteData(0, 0, buf, 100, NULL, false));
1347 EXPECT_EQ(kBufSize, entry3->WriteData(0, 0, buf, kBufSize, NULL, false));
1348
1349 // This line should disable the cache but not delete it.
1350 EXPECT_FALSE(cache_->OpenNextEntry(&iter, &entry4));
1351 EXPECT_EQ(4, cache_->GetEntryCount());
1352
1353 EXPECT_FALSE(cache_->CreateEntry("cache is disabled", &entry4));
1354
1355 EXPECT_EQ(100, entry2->ReadData(0, 0, buf, 100, NULL));
1356 EXPECT_EQ(100, entry2->WriteData(0, 0, buf, 100, NULL, false));
1357 EXPECT_EQ(100, entry2->WriteData(1, 0, buf, 100, NULL, false));
1358
1359 EXPECT_EQ(kBufSize, entry3->ReadData(0, 0, buf, kBufSize, NULL));
1360 EXPECT_EQ(kBufSize, entry3->WriteData(0, 0, buf, kBufSize, NULL, false));
1361 EXPECT_EQ(kBufSize, entry3->WriteData(1, 0, buf, kBufSize, NULL, false));
1362
1363 std::string key = entry2->GetKey();
1364 EXPECT_EQ(sizeof(key2) - 1, key.size());
1365 key = entry3->GetKey();
1366 EXPECT_EQ(sizeof(key3) - 1, key.size());
1367
1368 entry1->Close();
1369 entry2->Close();
1370 entry3->Close();
1371 MessageLoop::current()->RunAllPending();
1372
1373 EXPECT_EQ(0, cache_->GetEntryCount());
1374 }
1375
1376 TEST_F(DiskCacheBackendTest, DisableSuccess4) {
1377 ASSERT_TRUE(CopyTestCache(L"bad_rankings"));
1378 DisableFirstCleanup();
1379 SetDirectMode();
1380 InitCache();
1381 BackendDisable4();
1382 }
1383
1384 TEST_F(DiskCacheBackendTest, NewEvictionDisableSuccess4) {
1385 ASSERT_TRUE(CopyTestCache(L"bad_rankings"));
1386 DisableFirstCleanup();
1387 SetDirectMode();
1388 SetNewEviction();
1389 InitCache();
1390 BackendDisable4();
1391 }
1392
1327 TEST_F(DiskCacheTest, Backend_UsageStats) { 1393 TEST_F(DiskCacheTest, Backend_UsageStats) {
1328 MessageLoopHelper helper; 1394 MessageLoopHelper helper;
1329 1395
1330 std::wstring path = GetCachePath(); 1396 std::wstring path = GetCachePath();
1331 ASSERT_TRUE(DeleteCache(path.c_str())); 1397 ASSERT_TRUE(DeleteCache(path.c_str()));
1332 scoped_ptr<disk_cache::BackendImpl> cache; 1398 scoped_ptr<disk_cache::BackendImpl> cache;
1333 cache.reset(new disk_cache::BackendImpl(path)); 1399 cache.reset(new disk_cache::BackendImpl(path));
1334 ASSERT_TRUE(NULL != cache.get()); 1400 ASSERT_TRUE(NULL != cache.get());
1335 cache->SetUnitTestMode(); 1401 cache->SetUnitTestMode();
1336 ASSERT_TRUE(cache->Init()); 1402 ASSERT_TRUE(cache->Init());
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1471 EXPECT_EQ(kDefaultSize * 5 / 2, 1537 EXPECT_EQ(kDefaultSize * 5 / 2,
1472 disk_cache::PreferedCacheSize(large_size * 100 / 2)); 1538 disk_cache::PreferedCacheSize(large_size * 100 / 2));
1473 EXPECT_EQ(kDefaultSize * 5 / 2, 1539 EXPECT_EQ(kDefaultSize * 5 / 2,
1474 disk_cache::PreferedCacheSize(large_size * 500 / 2)); 1540 disk_cache::PreferedCacheSize(large_size * 500 / 2));
1475 1541
1476 EXPECT_EQ(kDefaultSize * 6 / 2, 1542 EXPECT_EQ(kDefaultSize * 6 / 2,
1477 disk_cache::PreferedCacheSize(large_size * 600 / 2)); 1543 disk_cache::PreferedCacheSize(large_size * 600 / 2));
1478 EXPECT_EQ(kDefaultSize * 7 / 2, 1544 EXPECT_EQ(kDefaultSize * 7 / 2,
1479 disk_cache::PreferedCacheSize(large_size * 700 / 2)); 1545 disk_cache::PreferedCacheSize(large_size * 700 / 2));
1480 } 1546 }
OLDNEW
« no previous file with comments | « no previous file | net/disk_cache/entry_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698