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

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

Issue 137483004: Merge 243495 "Disk Cache: Use the old WorkerPool for Async IO on..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1750/src/
Patch Set: Created 6 years, 11 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/disk_cache/backend_impl.cc ('k') | net/disk_cache/file.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) 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/metrics/field_trial.h" 7 #include "base/metrics/field_trial.h"
8 #include "base/port.h" 8 #include "base/port.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 511
512 if (rv == net::ERR_IO_PENDING) { 512 if (rv == net::ERR_IO_PENDING) {
513 if (fast || simple_cache_mode_) 513 if (fast || simple_cache_mode_)
514 EXPECT_FALSE(cb.have_result()); 514 EXPECT_FALSE(cb.have_result());
515 else 515 else
516 EXPECT_TRUE(cb.have_result()); 516 EXPECT_TRUE(cb.have_result());
517 } 517 }
518 518
519 base::MessageLoop::current()->RunUntilIdle(); 519 base::MessageLoop::current()->RunUntilIdle();
520 520
521 #if !defined(OS_IOS)
521 // Wait for the actual operation to complete, or we'll keep a file handle that 522 // Wait for the actual operation to complete, or we'll keep a file handle that
522 // may cause issues later. 523 // may cause issues later. Note that on iOS systems even though this test
524 // uses a single thread, the actual IO is posted to a worker thread and the
525 // cache destructor breaks the link to reach cb when the operation completes.
523 rv = cb.GetResult(rv); 526 rv = cb.GetResult(rv);
527 #endif
524 } 528 }
525 529
526 TEST_F(DiskCacheBackendTest, ShutdownWithPendingFileIO) { 530 TEST_F(DiskCacheBackendTest, ShutdownWithPendingFileIO) {
527 BackendShutdownWithPendingFileIO(false); 531 BackendShutdownWithPendingFileIO(false);
528 } 532 }
529 533
530 // Here and below, tests that simulate crashes are not compiled in LeakSanitizer 534 // Here and below, tests that simulate crashes are not compiled in LeakSanitizer
531 // builds because they contain a lot of intentional memory leaks. 535 // builds because they contain a lot of intentional memory leaks.
532 // The wrapper scripts used to run tests under Valgrind Memcheck and 536 // The wrapper scripts used to run tests under Valgrind Memcheck and
533 // Heapchecker will also disable these tests under those tools. See: 537 // Heapchecker will also disable these tests under those tools. See:
534 // tools/valgrind/gtest_exclude/net_unittests.gtest-memcheck.txt 538 // tools/valgrind/gtest_exclude/net_unittests.gtest-memcheck.txt
535 // tools/heapcheck/net_unittests.gtest-heapcheck.txt 539 // tools/heapcheck/net_unittests.gtest-heapcheck.txt
536 #if !defined(LEAK_SANITIZER) 540 #if !defined(LEAK_SANITIZER)
537 // We'll be leaking from this test. 541 // We'll be leaking from this test.
538 TEST_F(DiskCacheBackendTest, ShutdownWithPendingFileIO_Fast) { 542 TEST_F(DiskCacheBackendTest, ShutdownWithPendingFileIO_Fast) {
539 // The integrity test sets kNoRandom so there's a version mismatch if we don't 543 // The integrity test sets kNoRandom so there's a version mismatch if we don't
540 // force new eviction. 544 // force new eviction.
541 SetNewEviction(); 545 SetNewEviction();
542 BackendShutdownWithPendingFileIO(true); 546 BackendShutdownWithPendingFileIO(true);
543 } 547 }
544 #endif 548 #endif
545 549
550 // See crbug.com/330074
551 #if !defined(OS_IOS)
546 // Tests that one cache instance is not affected by another one going away. 552 // Tests that one cache instance is not affected by another one going away.
547 TEST_F(DiskCacheBackendTest, MultipleInstancesWithPendingFileIO) { 553 TEST_F(DiskCacheBackendTest, MultipleInstancesWithPendingFileIO) {
548 base::ScopedTempDir store; 554 base::ScopedTempDir store;
549 ASSERT_TRUE(store.CreateUniqueTempDir()); 555 ASSERT_TRUE(store.CreateUniqueTempDir());
550 556
551 net::TestCompletionCallback cb; 557 net::TestCompletionCallback cb;
552 scoped_ptr<disk_cache::Backend> extra_cache; 558 scoped_ptr<disk_cache::Backend> extra_cache;
553 int rv = disk_cache::CreateCacheBackend( 559 int rv = disk_cache::CreateCacheBackend(
554 net::DISK_CACHE, net::CACHE_BACKEND_DEFAULT, store.path(), 0, 560 net::DISK_CACHE, net::CACHE_BACKEND_DEFAULT, store.path(), 0,
555 false, base::MessageLoopProxy::current().get(), NULL, 561 false, base::MessageLoopProxy::current().get(), NULL,
(...skipping 13 matching lines...) Expand all
569 575
570 if (rv == net::ERR_IO_PENDING) 576 if (rv == net::ERR_IO_PENDING)
571 EXPECT_FALSE(cb.have_result()); 577 EXPECT_FALSE(cb.have_result());
572 578
573 base::MessageLoop::current()->RunUntilIdle(); 579 base::MessageLoop::current()->RunUntilIdle();
574 580
575 // Wait for the actual operation to complete, or we'll keep a file handle that 581 // Wait for the actual operation to complete, or we'll keep a file handle that
576 // may cause issues later. 582 // may cause issues later.
577 rv = cb.GetResult(rv); 583 rv = cb.GetResult(rv);
578 } 584 }
585 #endif
579 586
580 // Tests that we deal with background-thread pending operations. 587 // Tests that we deal with background-thread pending operations.
581 void DiskCacheBackendTest::BackendShutdownWithPendingIO(bool fast) { 588 void DiskCacheBackendTest::BackendShutdownWithPendingIO(bool fast) {
582 net::TestCompletionCallback cb; 589 net::TestCompletionCallback cb;
583 590
584 { 591 {
585 ASSERT_TRUE(CleanupCacheDir()); 592 ASSERT_TRUE(CleanupCacheDir());
586 base::Thread cache_thread("CacheThread"); 593 base::Thread cache_thread("CacheThread");
587 ASSERT_TRUE(cache_thread.StartWithOptions( 594 ASSERT_TRUE(cache_thread.StartWithOptions(
588 base::Thread::Options(base::MessageLoop::TYPE_IO, 0))); 595 base::Thread::Options(base::MessageLoop::TYPE_IO, 0)));
(...skipping 2875 matching lines...) Expand 10 before | Expand all | Expand 10 after
3464 void* iter = NULL; 3471 void* iter = NULL;
3465 size_t count = 0; 3472 size_t count = 0;
3466 ASSERT_TRUE(EnumerateAndMatchKeys(-1, &iter, &keys_to_match, &count)); 3473 ASSERT_TRUE(EnumerateAndMatchKeys(-1, &iter, &keys_to_match, &count));
3467 cache_->EndEnumeration(&iter); 3474 cache_->EndEnumeration(&iter);
3468 3475
3469 EXPECT_EQ(key_pool.size(), count); 3476 EXPECT_EQ(key_pool.size(), count);
3470 EXPECT_TRUE(keys_to_match.empty()); 3477 EXPECT_TRUE(keys_to_match.empty());
3471 } 3478 }
3472 3479
3473 #endif // defined(OS_POSIX) 3480 #endif // defined(OS_POSIX)
OLDNEW
« no previous file with comments | « net/disk_cache/backend_impl.cc ('k') | net/disk_cache/file.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698