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

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

Issue 21236: Revert cl 9528 to fix mac test_shell_tests (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 10 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 | « net/base/io_buffer.h ('k') | net/disk_cache/disk_cache.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"
11 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
12 #include "net/disk_cache/backend_impl.h" 11 #include "net/disk_cache/backend_impl.h"
13 #include "net/disk_cache/disk_cache_test_base.h" 12 #include "net/disk_cache/disk_cache_test_base.h"
14 #include "net/disk_cache/disk_cache_test_util.h" 13 #include "net/disk_cache/disk_cache_test_util.h"
15 #include "net/disk_cache/mapped_file.h" 14 #include "net/disk_cache/mapped_file.h"
16 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
17 16
18 using base::Time; 17 using base::Time;
19 18
20 namespace { 19 namespace {
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 InitCache(); 202 InitCache();
204 BackendKeying(); 203 BackendKeying();
205 } 204 }
206 205
207 TEST_F(DiskCacheBackendTest, ExternalFiles) { 206 TEST_F(DiskCacheBackendTest, ExternalFiles) {
208 InitCache(); 207 InitCache();
209 // First, lets create a file on the folder. 208 // First, lets create a file on the folder.
210 std::wstring filename = GetCachePath(); 209 std::wstring filename = GetCachePath();
211 file_util::AppendToPath(&filename, L"f_000001"); 210 file_util::AppendToPath(&filename, L"f_000001");
212 211
213 const int kSize = 50; 212 const int kDataSize = 50;
214 scoped_refptr<net::IOBuffer> buffer1 = new net::IOBuffer(kSize); 213 char data[kDataSize];
215 CacheTestFillBuffer(buffer1->data(), kSize, false); 214 CacheTestFillBuffer(data, kDataSize, false);
216 ASSERT_EQ(kSize, file_util::WriteFile(filename, buffer1->data(), kSize)); 215 ASSERT_EQ(kDataSize, file_util::WriteFile(filename, data, kDataSize));
217 216
218 // Now let's create a file with the cache. 217 // Now let's create a file with the cache.
219 disk_cache::Entry* entry; 218 disk_cache::Entry* entry;
220 ASSERT_TRUE(cache_->CreateEntry("key", &entry)); 219 ASSERT_TRUE(cache_->CreateEntry("key", &entry));
221 ASSERT_EQ(0, entry->WriteData(0, 20000, buffer1, 0, NULL, false)); 220 ASSERT_EQ(0, entry->WriteData(0, 20000, data, 0, NULL, false));
222 entry->Close(); 221 entry->Close();
223 222
224 // And verify that the first file is still there. 223 // And verify that the first file is still there.
225 scoped_refptr<net::IOBuffer> buffer2 = new net::IOBuffer(kSize); 224 char buffer[kDataSize];
226 ASSERT_EQ(kSize, file_util::ReadFile(filename, buffer2->data(), kSize)); 225 ASSERT_EQ(kDataSize, file_util::ReadFile(filename, buffer, kDataSize));
227 EXPECT_EQ(0, memcmp(buffer1->data(), buffer2->data(), kSize)); 226 EXPECT_EQ(0, memcmp(data, buffer, kDataSize));
228 } 227 }
229 228
230 void DiskCacheBackendTest::BackendSetSize() { 229 void DiskCacheBackendTest::BackendSetSize() {
231 SetDirectMode(); 230 SetDirectMode();
232 const int cache_size = 0x10000; // 64 kB 231 const int cache_size = 0x10000; // 64 kB
233 SetMaxSize(cache_size); 232 SetMaxSize(cache_size);
234 InitCache(); 233 InitCache();
235 234
236 std::string first("some key"); 235 std::string first("some key");
237 std::string second("something else"); 236 std::string second("something else");
238 disk_cache::Entry* entry; 237 disk_cache::Entry* entry;
239 ASSERT_TRUE(cache_->CreateEntry(first, &entry)); 238 ASSERT_TRUE(cache_->CreateEntry(first, &entry));
240 239
241 scoped_refptr<net::IOBuffer> buffer = new net::IOBuffer(cache_size); 240 char buffer[cache_size] = {0};
242 memset(buffer->data(), 0, cache_size);
243 EXPECT_EQ(cache_size / 10, entry->WriteData(0, 0, buffer, cache_size / 10, 241 EXPECT_EQ(cache_size / 10, entry->WriteData(0, 0, buffer, cache_size / 10,
244 NULL, false)) << "normal file"; 242 NULL, false)) << "normal file";
245 243
246 EXPECT_EQ(net::ERR_FAILED, entry->WriteData(1, 0, buffer, cache_size / 5, 244 EXPECT_EQ(net::ERR_FAILED, entry->WriteData(1, 0, buffer, cache_size / 5,
247 NULL, false)) << "file size above the limit"; 245 NULL, false)) << "file size above the limit";
248 246
249 // By doubling the total size, we make this file cacheable. 247 // By doubling the total size, we make this file cacheable.
250 SetMaxSize(cache_size * 2); 248 SetMaxSize(cache_size * 2);
251 EXPECT_EQ(cache_size / 5, entry->WriteData(1, 0, buffer, cache_size / 5, 249 EXPECT_EQ(cache_size / 5, entry->WriteData(1, 0, buffer, cache_size / 5,
252 NULL, false)); 250 NULL, false));
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 331
334 // Before looking for invalid entries, let's check a valid entry. 332 // Before looking for invalid entries, let's check a valid entry.
335 TEST_F(DiskCacheBackendTest, ValidEntry) { 333 TEST_F(DiskCacheBackendTest, ValidEntry) {
336 SetDirectMode(); 334 SetDirectMode();
337 InitCache(); 335 InitCache();
338 336
339 std::string key("Some key"); 337 std::string key("Some key");
340 disk_cache::Entry* entry1; 338 disk_cache::Entry* entry1;
341 ASSERT_TRUE(cache_->CreateEntry(key, &entry1)); 339 ASSERT_TRUE(cache_->CreateEntry(key, &entry1));
342 340
343 const int kSize = 50; 341 char data[] = "And the data to save";
344 scoped_refptr<net::IOBuffer> buffer1 = new net::IOBuffer(kSize); 342 EXPECT_TRUE(sizeof(data) == entry1->WriteData(0, 0, data, sizeof(data), NULL,
345 base::strlcpy(buffer1->data(), "And the data to save", kSize); 343 false));
346 EXPECT_EQ(kSize, entry1->WriteData(0, 0, buffer1, kSize, NULL, false));
347 entry1->Close(); 344 entry1->Close();
348 SimulateCrash(); 345 SimulateCrash();
349 346
350 ASSERT_TRUE(cache_->OpenEntry(key, &entry1)); 347 ASSERT_TRUE(cache_->OpenEntry(key, &entry1));
351 348
352 scoped_refptr<net::IOBuffer> buffer2 = new net::IOBuffer(kSize); 349 char buffer[40];
353 memset(buffer2->data(), 0, kSize); 350 memset(buffer, 0, sizeof(buffer));
354 EXPECT_EQ(kSize, entry1->ReadData(0, 0, buffer2, kSize, NULL)); 351 EXPECT_TRUE(sizeof(data) == entry1->ReadData(0, 0, buffer, sizeof(data),
352 NULL));
355 entry1->Close(); 353 entry1->Close();
356 EXPECT_STREQ(buffer1->data(), buffer2->data()); 354 EXPECT_STREQ(data, buffer);
357 } 355 }
358 356
359 // The same logic of the previous test (ValidEntry), but this time force the 357 // The same logic of the previous test (ValidEntry), but this time force the
360 // entry to be invalid, simulating a crash in the middle. 358 // entry to be invalid, simulating a crash in the middle.
361 // We'll be leaking memory from this test. 359 // We'll be leaking memory from this test.
362 TEST_F(DiskCacheBackendTest, InvalidEntry) { 360 TEST_F(DiskCacheBackendTest, InvalidEntry) {
363 // Use the implementation directly... we need to simulate a crash. 361 // Use the implementation directly... we need to simulate a crash.
364 SetDirectMode(); 362 SetDirectMode();
365 InitCache(); 363 InitCache();
366 364
367 std::string key("Some key"); 365 std::string key("Some key");
368 disk_cache::Entry* entry1; 366 disk_cache::Entry* entry1;
369 ASSERT_TRUE(cache_->CreateEntry(key, &entry1)); 367 ASSERT_TRUE(cache_->CreateEntry(key, &entry1));
370 368
371 const int kSize = 50; 369 char data[] = "And the data to save";
372 scoped_refptr<net::IOBuffer> buffer1 = new net::IOBuffer(kSize); 370 EXPECT_TRUE(sizeof(data) == entry1->WriteData(0, 0, data, sizeof(data), NULL,
373 base::strlcpy(buffer1->data(), "And the data to save", kSize); 371 false));
374 EXPECT_EQ(kSize, entry1->WriteData(0, 0, buffer1, kSize, NULL, false));
375 SimulateCrash(); 372 SimulateCrash();
376 373
377 EXPECT_FALSE(cache_->OpenEntry(key, &entry1)); 374 EXPECT_FALSE(cache_->OpenEntry(key, &entry1));
378 EXPECT_EQ(0, cache_->GetEntryCount()); 375 EXPECT_EQ(0, cache_->GetEntryCount());
379 } 376 }
380 377
381 // Almost the same test, but this time crash the cache after reading an entry. 378 // Almost the same test, but this time crash the cache after reading an entry.
382 // We'll be leaking memory from this test. 379 // We'll be leaking memory from this test.
383 TEST_F(DiskCacheBackendTest, InvalidEntryRead) { 380 TEST_F(DiskCacheBackendTest, InvalidEntryRead) {
384 // Use the implementation directly... we need to simulate a crash. 381 // Use the implementation directly... we need to simulate a crash.
385 SetDirectMode(); 382 SetDirectMode();
386 InitCache(); 383 InitCache();
387 384
388 std::string key("Some key"); 385 std::string key("Some key");
389 disk_cache::Entry* entry1; 386 disk_cache::Entry* entry1;
390 ASSERT_TRUE(cache_->CreateEntry(key, &entry1)); 387 ASSERT_TRUE(cache_->CreateEntry(key, &entry1));
391 388
392 const int kSize = 50; 389 char data[] = "And the data to save";
393 scoped_refptr<net::IOBuffer> buffer1 = new net::IOBuffer(kSize); 390 EXPECT_TRUE(sizeof(data) == entry1->WriteData(0, 0, data, sizeof(data), NULL,
394 base::strlcpy(buffer1->data(), "And the data to save", kSize); 391 false));
395 EXPECT_EQ(kSize, entry1->WriteData(0, 0, buffer1, kSize, NULL, false));
396 entry1->Close(); 392 entry1->Close();
397 ASSERT_TRUE(cache_->OpenEntry(key, &entry1)); 393 ASSERT_TRUE(cache_->OpenEntry(key, &entry1));
398 EXPECT_EQ(kSize, entry1->ReadData(0, 0, buffer1, kSize, NULL)); 394 EXPECT_TRUE(sizeof(data) == entry1->ReadData(0, 0, data, sizeof(data), NULL));
399 395
400 SimulateCrash(); 396 SimulateCrash();
401 397
402 EXPECT_FALSE(cache_->OpenEntry(key, &entry1)); 398 EXPECT_FALSE(cache_->OpenEntry(key, &entry1));
403 EXPECT_EQ(0, cache_->GetEntryCount()); 399 EXPECT_EQ(0, cache_->GetEntryCount());
404 } 400 }
405 401
406 // We'll be leaking memory from this test. 402 // We'll be leaking memory from this test.
407 TEST_F(DiskCacheBackendTest, InvalidEntryWithLoad) { 403 TEST_F(DiskCacheBackendTest, InvalidEntryWithLoad) {
408 // Work with a tiny index table (16 entries) 404 // Work with a tiny index table (16 entries)
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 455
460 const int cache_size = 0x4000; // 16 kB 456 const int cache_size = 0x4000; // 16 kB
461 SetMaxSize(cache_size * 10); 457 SetMaxSize(cache_size * 10);
462 InitCache(); 458 InitCache();
463 459
464 std::string first("some key"); 460 std::string first("some key");
465 std::string second("something else"); 461 std::string second("something else");
466 disk_cache::Entry* entry; 462 disk_cache::Entry* entry;
467 ASSERT_TRUE(cache_->CreateEntry(first, &entry)); 463 ASSERT_TRUE(cache_->CreateEntry(first, &entry));
468 464
469 scoped_refptr<net::IOBuffer> buffer = new net::IOBuffer(cache_size); 465 char buffer[cache_size] = {0};
470 memset(buffer->data(), 0, cache_size);
471 EXPECT_EQ(cache_size * 19 / 20, entry->WriteData(0, 0, buffer, 466 EXPECT_EQ(cache_size * 19 / 20, entry->WriteData(0, 0, buffer,
472 cache_size * 19 / 20, NULL, false)); 467 cache_size * 19 / 20, NULL, false));
473 468
474 // Simulate a crash. 469 // Simulate a crash.
475 SimulateCrash(); 470 SimulateCrash();
476 471
477 ASSERT_TRUE(cache_->CreateEntry(second, &entry)); 472 ASSERT_TRUE(cache_->CreateEntry(second, &entry));
478 EXPECT_EQ(cache_size / 10, entry->WriteData(0, 0, buffer, cache_size / 10, 473 EXPECT_EQ(cache_size / 10, entry->WriteData(0, 0, buffer, cache_size / 10,
479 NULL, false)) << "trim the cache"; 474 NULL, false)) << "trim the cache";
480 entry->Close(); 475 entry->Close();
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 // We'll be leaking memory from this test. 542 // We'll be leaking memory from this test.
548 TEST_F(DiskCacheBackendTest, InvalidEntryEnumeration) { 543 TEST_F(DiskCacheBackendTest, InvalidEntryEnumeration) {
549 // Use the implementation directly... we need to simulate a crash. 544 // Use the implementation directly... we need to simulate a crash.
550 SetDirectMode(); 545 SetDirectMode();
551 InitCache(); 546 InitCache();
552 547
553 std::string key("Some key"); 548 std::string key("Some key");
554 disk_cache::Entry *entry, *entry1, *entry2; 549 disk_cache::Entry *entry, *entry1, *entry2;
555 ASSERT_TRUE(cache_->CreateEntry(key, &entry1)); 550 ASSERT_TRUE(cache_->CreateEntry(key, &entry1));
556 551
557 const int kSize = 50; 552 char data[] = "And the data to save";
558 scoped_refptr<net::IOBuffer> buffer1 = new net::IOBuffer(kSize); 553 EXPECT_TRUE(sizeof(data) == entry1->WriteData(0, 0, data, sizeof(data), NULL,
559 base::strlcpy(buffer1->data(), "And the data to save", kSize); 554 false));
560 EXPECT_EQ(kSize, entry1->WriteData(0, 0, buffer1, kSize, NULL, false));
561 entry1->Close(); 555 entry1->Close();
562 ASSERT_TRUE(cache_->OpenEntry(key, &entry1)); 556 ASSERT_TRUE(cache_->OpenEntry(key, &entry1));
563 EXPECT_EQ(kSize, entry1->ReadData(0, 0, buffer1, kSize, NULL)); 557 EXPECT_TRUE(sizeof(data) == entry1->ReadData(0, 0, data, sizeof(data), NULL));
564 558
565 std::string key2("Another key"); 559 std::string key2("Another key");
566 ASSERT_TRUE(cache_->CreateEntry(key2, &entry2)); 560 ASSERT_TRUE(cache_->CreateEntry(key2, &entry2));
567 entry2->Close(); 561 entry2->Close();
568 ASSERT_EQ(2, cache_->GetEntryCount()); 562 ASSERT_EQ(2, cache_->GetEntryCount());
569 563
570 SimulateCrash(); 564 SimulateCrash();
571 565
572 void* iter = NULL; 566 void* iter = NULL;
573 int count = 0; 567 int count = 0;
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 InitCache(); 970 InitCache();
977 BackendDoomAll(); 971 BackendDoomAll();
978 } 972 }
979 973
980 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomAll) { 974 TEST_F(DiskCacheBackendTest, MemoryOnlyDoomAll) {
981 SetMemoryOnlyMode(); 975 SetMemoryOnlyMode();
982 InitCache(); 976 InitCache();
983 BackendDoomAll(); 977 BackendDoomAll();
984 } 978 }
985 979
OLDNEW
« no previous file with comments | « net/base/io_buffer.h ('k') | net/disk_cache/disk_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698