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

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

Issue 508733002: Remove implicit conversions from scoped_refptr to T* in net/disk_cache/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « net/disk_cache/cache_creator.cc ('k') | net/disk_cache/simple/simple_backend_impl.cc » ('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/bind.h" 6 #include "base/bind.h"
7 #include "base/bind_helpers.h" 7 #include "base/bind_helpers.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/files/file.h" 9 #include "base/files/file.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 3741 matching lines...) Expand 10 before | Expand all | Expand 10 after
3752 const char key[] = "key"; 3752 const char key[] = "key";
3753 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize)); 3753 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize));
3754 CacheTestFillBuffer(buffer->data(), kHalfSize, false); 3754 CacheTestFillBuffer(buffer->data(), kHalfSize, false);
3755 3755
3756 disk_cache::Entry* entry; 3756 disk_cache::Entry* entry;
3757 3757
3758 // Create entry, write empty buffer to third stream, and close: third stream 3758 // Create entry, write empty buffer to third stream, and close: third stream
3759 // should still be omitted, since the entry ignores writes that don't modify 3759 // should still be omitted, since the entry ignores writes that don't modify
3760 // data or change the length. 3760 // data or change the length.
3761 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); 3761 ASSERT_EQ(net::OK, CreateEntry(key, &entry));
3762 EXPECT_EQ(0, WriteData(entry, 2, 0, buffer, 0, true)); 3762 EXPECT_EQ(0, WriteData(entry, 2, 0, buffer.get(), 0, true));
3763 entry->Close(); 3763 entry->Close();
3764 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key)); 3764 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key));
3765 3765
3766 SyncDoomEntry(key); 3766 SyncDoomEntry(key);
3767 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key)); 3767 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key));
3768 } 3768 }
3769 3769
3770 // Check that we can read back data written to the third stream. 3770 // Check that we can read back data written to the third stream.
3771 TEST_F(DiskCacheEntryTest, SimpleCacheOmittedThirdStream3) { 3771 TEST_F(DiskCacheEntryTest, SimpleCacheOmittedThirdStream3) {
3772 SetSimpleCacheMode(); 3772 SetSimpleCacheMode();
3773 InitCache(); 3773 InitCache();
3774 3774
3775 const int kHalfSize = 8; 3775 const int kHalfSize = 8;
3776 const int kSize = kHalfSize * 2; 3776 const int kSize = kHalfSize * 2;
3777 const char key[] = "key"; 3777 const char key[] = "key";
3778 scoped_refptr<net::IOBuffer> buffer1(new net::IOBuffer(kSize)); 3778 scoped_refptr<net::IOBuffer> buffer1(new net::IOBuffer(kSize));
3779 scoped_refptr<net::IOBuffer> buffer2(new net::IOBuffer(kSize)); 3779 scoped_refptr<net::IOBuffer> buffer2(new net::IOBuffer(kSize));
3780 CacheTestFillBuffer(buffer1->data(), kHalfSize, false); 3780 CacheTestFillBuffer(buffer1->data(), kHalfSize, false);
3781 3781
3782 disk_cache::Entry* entry; 3782 disk_cache::Entry* entry;
3783 3783
3784 // Create entry, write data to third stream, and close: third stream should 3784 // Create entry, write data to third stream, and close: third stream should
3785 // not be omitted, since it contains data. Re-open entry and ensure there 3785 // not be omitted, since it contains data. Re-open entry and ensure there
3786 // are that many bytes in the third stream. 3786 // are that many bytes in the third stream.
3787 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); 3787 ASSERT_EQ(net::OK, CreateEntry(key, &entry));
3788 EXPECT_EQ(kHalfSize, WriteData(entry, 2, 0, buffer1, kHalfSize, true)); 3788 EXPECT_EQ(kHalfSize, WriteData(entry, 2, 0, buffer1.get(), kHalfSize, true));
3789 entry->Close(); 3789 entry->Close();
3790 EXPECT_TRUE(SimpleCacheThirdStreamFileExists(key)); 3790 EXPECT_TRUE(SimpleCacheThirdStreamFileExists(key));
3791 3791
3792 ASSERT_EQ(net::OK, OpenEntry(key, &entry)); 3792 ASSERT_EQ(net::OK, OpenEntry(key, &entry));
3793 EXPECT_EQ(kHalfSize, ReadData(entry, 2, 0, buffer2, kSize)); 3793 EXPECT_EQ(kHalfSize, ReadData(entry, 2, 0, buffer2.get(), kSize));
3794 EXPECT_EQ(0, memcmp(buffer1->data(), buffer2->data(), kHalfSize)); 3794 EXPECT_EQ(0, memcmp(buffer1->data(), buffer2->data(), kHalfSize));
3795 entry->Close(); 3795 entry->Close();
3796 EXPECT_TRUE(SimpleCacheThirdStreamFileExists(key)); 3796 EXPECT_TRUE(SimpleCacheThirdStreamFileExists(key));
3797 3797
3798 SyncDoomEntry(key); 3798 SyncDoomEntry(key);
3799 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key)); 3799 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key));
3800 } 3800 }
3801 3801
3802 // Check that we remove the third stream file upon opening an entry and finding 3802 // Check that we remove the third stream file upon opening an entry and finding
3803 // the third stream empty. (This is the upgrade path for entries written 3803 // the third stream empty. (This is the upgrade path for entries written
(...skipping 10 matching lines...) Expand all
3814 CacheTestFillBuffer(buffer1->data(), kHalfSize, false); 3814 CacheTestFillBuffer(buffer1->data(), kHalfSize, false);
3815 3815
3816 disk_cache::Entry* entry; 3816 disk_cache::Entry* entry;
3817 3817
3818 // Create entry, write data to third stream, truncate third stream back to 3818 // Create entry, write data to third stream, truncate third stream back to
3819 // empty, and close: third stream will not initially be omitted, since entry 3819 // empty, and close: third stream will not initially be omitted, since entry
3820 // creates the file when the first significant write comes in, and only 3820 // creates the file when the first significant write comes in, and only
3821 // removes it on open if it is empty. Reopen, ensure that the file is 3821 // removes it on open if it is empty. Reopen, ensure that the file is
3822 // deleted, and that there's no data in the third stream. 3822 // deleted, and that there's no data in the third stream.
3823 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); 3823 ASSERT_EQ(net::OK, CreateEntry(key, &entry));
3824 EXPECT_EQ(kHalfSize, WriteData(entry, 2, 0, buffer1, kHalfSize, true)); 3824 EXPECT_EQ(kHalfSize, WriteData(entry, 2, 0, buffer1.get(), kHalfSize, true));
3825 EXPECT_EQ(0, WriteData(entry, 2, 0, buffer1, 0, true)); 3825 EXPECT_EQ(0, WriteData(entry, 2, 0, buffer1.get(), 0, true));
3826 entry->Close(); 3826 entry->Close();
3827 EXPECT_TRUE(SimpleCacheThirdStreamFileExists(key)); 3827 EXPECT_TRUE(SimpleCacheThirdStreamFileExists(key));
3828 3828
3829 ASSERT_EQ(net::OK, OpenEntry(key, &entry)); 3829 ASSERT_EQ(net::OK, OpenEntry(key, &entry));
3830 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key)); 3830 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key));
3831 EXPECT_EQ(0, ReadData(entry, 2, 0, buffer2, kSize)); 3831 EXPECT_EQ(0, ReadData(entry, 2, 0, buffer2.get(), kSize));
3832 entry->Close(); 3832 entry->Close();
3833 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key)); 3833 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key));
3834 3834
3835 SyncDoomEntry(key); 3835 SyncDoomEntry(key);
3836 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key)); 3836 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key));
3837 } 3837 }
3838 3838
3839 // Check that we don't accidentally create the third stream file once the entry 3839 // Check that we don't accidentally create the third stream file once the entry
3840 // has been doomed. 3840 // has been doomed.
3841 TEST_F(DiskCacheEntryTest, SimpleCacheOmittedThirdStream5) { 3841 TEST_F(DiskCacheEntryTest, SimpleCacheOmittedThirdStream5) {
3842 SetSimpleCacheMode(); 3842 SetSimpleCacheMode();
3843 InitCache(); 3843 InitCache();
3844 3844
3845 const int kHalfSize = 8; 3845 const int kHalfSize = 8;
3846 const int kSize = kHalfSize * 2; 3846 const int kSize = kHalfSize * 2;
3847 const char key[] = "key"; 3847 const char key[] = "key";
3848 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize)); 3848 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize));
3849 CacheTestFillBuffer(buffer->data(), kHalfSize, false); 3849 CacheTestFillBuffer(buffer->data(), kHalfSize, false);
3850 3850
3851 disk_cache::Entry* entry; 3851 disk_cache::Entry* entry;
3852 3852
3853 // Create entry, doom entry, write data to third stream, and close: third 3853 // Create entry, doom entry, write data to third stream, and close: third
3854 // stream should not exist. (Note: We don't care if the write fails, just 3854 // stream should not exist. (Note: We don't care if the write fails, just
3855 // that it doesn't cause the file to be created on disk.) 3855 // that it doesn't cause the file to be created on disk.)
3856 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); 3856 ASSERT_EQ(net::OK, CreateEntry(key, &entry));
3857 entry->Doom(); 3857 entry->Doom();
3858 WriteData(entry, 2, 0, buffer, kHalfSize, true); 3858 WriteData(entry, 2, 0, buffer.get(), kHalfSize, true);
3859 entry->Close(); 3859 entry->Close();
3860 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key)); 3860 EXPECT_FALSE(SimpleCacheThirdStreamFileExists(key));
3861 } 3861 }
3862 3862
3863 // There could be a race between Doom and an optimistic write. 3863 // There could be a race between Doom and an optimistic write.
3864 TEST_F(DiskCacheEntryTest, SimpleCacheDoomOptimisticWritesRace) { 3864 TEST_F(DiskCacheEntryTest, SimpleCacheDoomOptimisticWritesRace) {
3865 // Test sequence: 3865 // Test sequence:
3866 // Create, first Write, second Write, Close. 3866 // Create, first Write, second Write, Close.
3867 // Open, Close. 3867 // Open, Close.
3868 SetSimpleCacheMode(); 3868 SetSimpleCacheMode();
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
3966 disk_cache::Entry* entry; 3966 disk_cache::Entry* entry;
3967 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); 3967 ASSERT_EQ(net::OK, CreateEntry(key, &entry));
3968 EXPECT_NE(null, entry); 3968 EXPECT_NE(null, entry);
3969 3969
3970 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize)); 3970 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize));
3971 CacheTestFillBuffer(buffer->data(), kSize, false); 3971 CacheTestFillBuffer(buffer->data(), kSize, false);
3972 net::TestCompletionCallback callback; 3972 net::TestCompletionCallback callback;
3973 int ret; 3973 int ret;
3974 3974
3975 // Verify initial conditions. 3975 // Verify initial conditions.
3976 ret = entry->ReadSparseData(0, buffer, kSize, callback.callback()); 3976 ret = entry->ReadSparseData(0, buffer.get(), kSize, callback.callback());
3977 EXPECT_EQ(0, callback.GetResult(ret)); 3977 EXPECT_EQ(0, callback.GetResult(ret));
3978 3978
3979 ret = entry->ReadSparseData(kSize, buffer, kSize, callback.callback()); 3979 ret = entry->ReadSparseData(kSize, buffer.get(), kSize, callback.callback());
3980 EXPECT_EQ(0, callback.GetResult(ret)); 3980 EXPECT_EQ(0, callback.GetResult(ret));
3981 3981
3982 // Write a range and make sure it reads back. 3982 // Write a range and make sure it reads back.
3983 ret = entry->WriteSparseData(0, buffer, kSize, callback.callback()); 3983 ret = entry->WriteSparseData(0, buffer.get(), kSize, callback.callback());
3984 EXPECT_EQ(kSize, callback.GetResult(ret)); 3984 EXPECT_EQ(kSize, callback.GetResult(ret));
3985 3985
3986 ret = entry->ReadSparseData(0, buffer, kSize, callback.callback()); 3986 ret = entry->ReadSparseData(0, buffer.get(), kSize, callback.callback());
3987 EXPECT_EQ(kSize, callback.GetResult(ret)); 3987 EXPECT_EQ(kSize, callback.GetResult(ret));
3988 3988
3989 // Write another range and make sure it reads back. 3989 // Write another range and make sure it reads back.
3990 ret = entry->WriteSparseData(kSize, buffer, kSize, callback.callback()); 3990 ret = entry->WriteSparseData(kSize, buffer.get(), kSize, callback.callback());
3991 EXPECT_EQ(kSize, callback.GetResult(ret)); 3991 EXPECT_EQ(kSize, callback.GetResult(ret));
3992 3992
3993 ret = entry->ReadSparseData(kSize, buffer, kSize, callback.callback()); 3993 ret = entry->ReadSparseData(kSize, buffer.get(), kSize, callback.callback());
3994 EXPECT_EQ(kSize, callback.GetResult(ret)); 3994 EXPECT_EQ(kSize, callback.GetResult(ret));
3995 3995
3996 // Make sure the first range was removed when the second was written. 3996 // Make sure the first range was removed when the second was written.
3997 ret = entry->ReadSparseData(0, buffer, kSize, callback.callback()); 3997 ret = entry->ReadSparseData(0, buffer.get(), kSize, callback.callback());
3998 EXPECT_EQ(0, callback.GetResult(ret)); 3998 EXPECT_EQ(0, callback.GetResult(ret));
3999 3999
4000 entry->Close(); 4000 entry->Close();
4001 } 4001 }
4002 4002
4003 #endif // defined(OS_POSIX) 4003 #endif // defined(OS_POSIX)
OLDNEW
« no previous file with comments | « net/disk_cache/cache_creator.cc ('k') | net/disk_cache/simple/simple_backend_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698