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

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

Issue 15984016: Call scoped_refptr<T>::get() rather than relying on implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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/disk_cache_test_util.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/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 2847 matching lines...) Expand 10 before | Expand all | Expand 10 after
2858 ASSERT_TRUE(entry); 2858 ASSERT_TRUE(entry);
2859 const int kWriteSize = 512; 2859 const int kWriteSize = 512;
2860 scoped_refptr<net::IOBuffer> buffer1(new net::IOBuffer(kWriteSize)); 2860 scoped_refptr<net::IOBuffer> buffer1(new net::IOBuffer(kWriteSize));
2861 EXPECT_TRUE(buffer1->HasOneRef()); 2861 EXPECT_TRUE(buffer1->HasOneRef());
2862 CacheTestFillBuffer(buffer1->data(), kWriteSize, false); 2862 CacheTestFillBuffer(buffer1->data(), kWriteSize, false);
2863 2863
2864 // An optimistic write happens only when there is an empty queue of pending 2864 // An optimistic write happens only when there is an empty queue of pending
2865 // operations. To ensure the queue is empty, we issue a write and wait until 2865 // operations. To ensure the queue is empty, we issue a write and wait until
2866 // it completes. 2866 // it completes.
2867 EXPECT_EQ(kWriteSize, 2867 EXPECT_EQ(kWriteSize,
2868 WriteData(entry, 0, 0, buffer1, kWriteSize, false)); 2868 WriteData(entry, 0, 0, buffer1.get(), kWriteSize, false));
2869 EXPECT_TRUE(buffer1->HasOneRef()); 2869 EXPECT_TRUE(buffer1->HasOneRef());
2870 2870
2871 // Finally, we should perform an optimistic write and confirm that all 2871 // Finally, we should perform an optimistic write and confirm that all
2872 // references to the IO buffer have been released. 2872 // references to the IO buffer have been released.
2873 EXPECT_EQ(kWriteSize, entry->WriteData( 2873 EXPECT_EQ(
2874 1, 0, buffer1, kWriteSize, net::CompletionCallback(), false)); 2874 kWriteSize,
2875 entry->WriteData(
2876 1, 0, buffer1.get(), kWriteSize, net::CompletionCallback(), false));
2875 EXPECT_TRUE(buffer1->HasOneRef()); 2877 EXPECT_TRUE(buffer1->HasOneRef());
2876 entry->Close(); 2878 entry->Close();
2877 } 2879 }
2878 2880
2879 TEST_F(DiskCacheEntryTest, DISABLED_SimpleCacheCreateDoomRace) { 2881 TEST_F(DiskCacheEntryTest, DISABLED_SimpleCacheCreateDoomRace) {
2880 // Test sequence: 2882 // Test sequence:
2881 // Create, Doom, Write, Close, Check files are not on disk anymore. 2883 // Create, Doom, Write, Close, Check files are not on disk anymore.
2882 SetSimpleCacheMode(); 2884 SetSimpleCacheMode();
2883 InitCache(); 2885 InitCache();
2884 disk_cache::Entry* null = NULL; 2886 disk_cache::Entry* null = NULL;
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
3211 3213
3212 const int kHalfSize = 200; 3214 const int kHalfSize = 200;
3213 const int kSize = 2 * kHalfSize; 3215 const int kSize = 2 * kHalfSize;
3214 scoped_refptr<net::IOBuffer> buffer1(new net::IOBuffer(kSize)); 3216 scoped_refptr<net::IOBuffer> buffer1(new net::IOBuffer(kSize));
3215 CacheTestFillBuffer(buffer1->data(), kSize, false); 3217 CacheTestFillBuffer(buffer1->data(), kSize, false);
3216 disk_cache::Entry* entry = NULL; 3218 disk_cache::Entry* entry = NULL;
3217 3219
3218 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); 3220 ASSERT_EQ(net::OK, CreateEntry(key, &entry));
3219 EXPECT_NE(null, entry); 3221 EXPECT_NE(null, entry);
3220 3222
3221 EXPECT_EQ(kSize, WriteData(entry, 0, 0, buffer1, kSize, false)); 3223 EXPECT_EQ(kSize, WriteData(entry, 0, 0, buffer1.get(), kSize, false));
3222 entry->Close(); 3224 entry->Close();
3223 3225
3224 disk_cache::Entry* entry2 = NULL; 3226 disk_cache::Entry* entry2 = NULL;
3225 ASSERT_EQ(net::OK, OpenEntry(key, &entry2)); 3227 ASSERT_EQ(net::OK, OpenEntry(key, &entry2));
3226 EXPECT_EQ(entry, entry2); 3228 EXPECT_EQ(entry, entry2);
3227 3229
3228 // Read the first half of the data. 3230 // Read the first half of the data.
3229 int offset = 0; 3231 int offset = 0;
3230 int buf_len = kHalfSize; 3232 int buf_len = kHalfSize;
3231 scoped_refptr<net::IOBuffer> buffer1_read1(new net::IOBuffer(buf_len)); 3233 scoped_refptr<net::IOBuffer> buffer1_read1(new net::IOBuffer(buf_len));
3232 EXPECT_EQ(buf_len, ReadData(entry2, 0, offset, buffer1_read1, buf_len)); 3234 EXPECT_EQ(buf_len, ReadData(entry2, 0, offset, buffer1_read1.get(), buf_len));
3233 EXPECT_EQ(0, memcmp(buffer1->data(), buffer1_read1->data(), buf_len)); 3235 EXPECT_EQ(0, memcmp(buffer1->data(), buffer1_read1->data(), buf_len));
3234 3236
3235 // Read the second half of the data. 3237 // Read the second half of the data.
3236 offset = buf_len; 3238 offset = buf_len;
3237 buf_len = kHalfSize; 3239 buf_len = kHalfSize;
3238 scoped_refptr<net::IOBuffer> buffer1_read2(new net::IOBuffer(buf_len)); 3240 scoped_refptr<net::IOBuffer> buffer1_read2(new net::IOBuffer(buf_len));
3239 EXPECT_EQ(buf_len, ReadData(entry2, 0, offset, buffer1_read2, buf_len)); 3241 EXPECT_EQ(buf_len, ReadData(entry2, 0, offset, buffer1_read2.get(), buf_len));
3240 char* buffer1_data = buffer1->data() + offset; 3242 char* buffer1_data = buffer1->data() + offset;
3241 EXPECT_EQ(0, memcmp(buffer1_data, buffer1_read2->data(), buf_len)); 3243 EXPECT_EQ(0, memcmp(buffer1_data, buffer1_read2->data(), buf_len));
3242 3244
3243 // Check that we are not leaking. 3245 // Check that we are not leaking.
3244 EXPECT_NE(entry, null); 3246 EXPECT_NE(entry, null);
3245 EXPECT_TRUE( 3247 EXPECT_TRUE(
3246 static_cast<disk_cache::SimpleEntryImpl*>(entry)->HasOneRef()); 3248 static_cast<disk_cache::SimpleEntryImpl*>(entry)->HasOneRef());
3247 entry->Close(); 3249 entry->Close();
3248 entry = NULL; 3250 entry = NULL;
3249 } 3251 }
(...skipping 17 matching lines...) Expand all
3267 char* buffer1_data = buffer1->data() + kHalfSize; 3269 char* buffer1_data = buffer1->data() + kHalfSize;
3268 memcpy(buffer2->data(), buffer1_data, kHalfSize); 3270 memcpy(buffer2->data(), buffer1_data, kHalfSize);
3269 disk_cache::Entry* entry = NULL; 3271 disk_cache::Entry* entry = NULL;
3270 3272
3271 ASSERT_EQ(net::OK, CreateEntry(key, &entry)); 3273 ASSERT_EQ(net::OK, CreateEntry(key, &entry));
3272 EXPECT_NE(null, entry); 3274 EXPECT_NE(null, entry);
3273 3275
3274 int offset = kHalfSize; 3276 int offset = kHalfSize;
3275 int buf_len = kHalfSize; 3277 int buf_len = kHalfSize;
3276 3278
3277 EXPECT_EQ(buf_len, WriteData(entry, 0, offset, buffer2, buf_len, false)); 3279 EXPECT_EQ(buf_len,
3280 WriteData(entry, 0, offset, buffer2.get(), buf_len, false));
3278 offset = 0; 3281 offset = 0;
3279 buf_len = kHalfSize; 3282 buf_len = kHalfSize;
3280 EXPECT_EQ(buf_len, WriteData(entry, 0, offset, buffer1, buf_len, false)); 3283 EXPECT_EQ(buf_len,
3284 WriteData(entry, 0, offset, buffer1.get(), buf_len, false));
3281 entry->Close(); 3285 entry->Close();
3282 3286
3283 disk_cache::Entry* entry2 = NULL; 3287 disk_cache::Entry* entry2 = NULL;
3284 ASSERT_EQ(net::OK, OpenEntry(key, &entry2)); 3288 ASSERT_EQ(net::OK, OpenEntry(key, &entry2));
3285 EXPECT_EQ(entry, entry2); 3289 EXPECT_EQ(entry, entry2);
3286 3290
3287 scoped_refptr<net::IOBuffer> buffer1_read1(new net::IOBuffer(kSize)); 3291 scoped_refptr<net::IOBuffer> buffer1_read1(new net::IOBuffer(kSize));
3288 EXPECT_EQ(kSize, ReadData(entry2, 0, 0, buffer1_read1, kSize)); 3292 EXPECT_EQ(kSize, ReadData(entry2, 0, 0, buffer1_read1.get(), kSize));
3289 EXPECT_EQ(0, memcmp(buffer1->data(), buffer1_read1->data(), kSize)); 3293 EXPECT_EQ(0, memcmp(buffer1->data(), buffer1_read1->data(), kSize));
3290 3294
3291 // Check that we are not leaking. 3295 // Check that we are not leaking.
3292 ASSERT_NE(entry, null); 3296 ASSERT_NE(entry, null);
3293 EXPECT_TRUE( 3297 EXPECT_TRUE(
3294 static_cast<disk_cache::SimpleEntryImpl*>(entry)->HasOneRef()); 3298 static_cast<disk_cache::SimpleEntryImpl*>(entry)->HasOneRef());
3295 entry->Close(); 3299 entry->Close();
3296 entry = NULL; 3300 entry = NULL;
3297 } 3301 }
3298 3302
3299 #endif // defined(OS_POSIX) 3303 #endif // defined(OS_POSIX)
OLDNEW
« no previous file with comments | « net/disk_cache/disk_cache_test_util.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