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

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

Issue 17019: Try to consistently use arraysize() with strlcpy(). (Closed)
Patch Set: Created 11 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
« no previous file with comments | « net/disk_cache/backend_unittest.cc ('k') | net/disk_cache/mapped_file_unittest.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) 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/platform_thread.h" 6 #include "base/platform_thread.h"
6 #include "base/timer.h" 7 #include "base/timer.h"
7 #include "base/string_util.h" 8 #include "base/string_util.h"
8 #include "net/base/net_errors.h" 9 #include "net/base/net_errors.h"
9 #include "net/disk_cache/disk_cache_test_base.h" 10 #include "net/disk_cache/disk_cache_test_base.h"
10 #include "net/disk_cache/disk_cache_test_util.h" 11 #include "net/disk_cache/disk_cache_test_util.h"
11 #include "net/disk_cache/entry_impl.h" 12 #include "net/disk_cache/entry_impl.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 14
14 using base::Time; 15 using base::Time;
(...skipping 20 matching lines...) Expand all
35 }; 36 };
36 37
37 void DiskCacheEntryTest::InternalSyncIO() { 38 void DiskCacheEntryTest::InternalSyncIO() {
38 disk_cache::Entry *entry1 = NULL; 39 disk_cache::Entry *entry1 = NULL;
39 ASSERT_TRUE(cache_->CreateEntry("the first key", &entry1)); 40 ASSERT_TRUE(cache_->CreateEntry("the first key", &entry1));
40 ASSERT_TRUE(NULL != entry1); 41 ASSERT_TRUE(NULL != entry1);
41 42
42 char buffer1[10]; 43 char buffer1[10];
43 CacheTestFillBuffer(buffer1, sizeof(buffer1), false); 44 CacheTestFillBuffer(buffer1, sizeof(buffer1), false);
44 EXPECT_EQ(0, entry1->ReadData(0, 0, buffer1, sizeof(buffer1), NULL)); 45 EXPECT_EQ(0, entry1->ReadData(0, 0, buffer1, sizeof(buffer1), NULL));
45 base::strlcpy(buffer1, "the data", sizeof(buffer1)); 46 base::strlcpy(buffer1, "the data", arraysize(buffer1));
46 EXPECT_EQ(10, entry1->WriteData(0, 0, buffer1, sizeof(buffer1), NULL, false)); 47 EXPECT_EQ(10, entry1->WriteData(0, 0, buffer1, sizeof(buffer1), NULL, false));
47 memset(buffer1, 0, sizeof(buffer1)); 48 memset(buffer1, 0, sizeof(buffer1));
48 EXPECT_EQ(10, entry1->ReadData(0, 0, buffer1, sizeof(buffer1), NULL)); 49 EXPECT_EQ(10, entry1->ReadData(0, 0, buffer1, sizeof(buffer1), NULL));
49 EXPECT_STREQ("the data", buffer1); 50 EXPECT_STREQ("the data", buffer1);
50 51
51 char buffer2[5000]; 52 char buffer2[5000];
52 char buffer3[10000] = {0}; 53 char buffer3[10000] = {0};
53 CacheTestFillBuffer(buffer2, sizeof(buffer2), false); 54 CacheTestFillBuffer(buffer2, sizeof(buffer2), false);
54 base::strlcpy(buffer2, "The really big data goes here", sizeof(buffer2)); 55 base::strlcpy(buffer2, "The really big data goes here", arraysize(buffer2));
55 EXPECT_EQ(5000, entry1->WriteData(1, 1500, buffer2, sizeof(buffer2), NULL, 56 EXPECT_EQ(5000, entry1->WriteData(1, 1500, buffer2, sizeof(buffer2), NULL,
56 false)); 57 false));
57 memset(buffer2, 0, sizeof(buffer2)); 58 memset(buffer2, 0, sizeof(buffer2));
58 EXPECT_EQ(4989, entry1->ReadData(1, 1511, buffer2, sizeof(buffer2), NULL)); 59 EXPECT_EQ(4989, entry1->ReadData(1, 1511, buffer2, sizeof(buffer2), NULL));
59 EXPECT_STREQ("big data goes here", buffer2); 60 EXPECT_STREQ("big data goes here", buffer2);
60 EXPECT_EQ(5000, entry1->ReadData(1, 0, buffer2, sizeof(buffer2), NULL)); 61 EXPECT_EQ(5000, entry1->ReadData(1, 0, buffer2, sizeof(buffer2), NULL));
61 EXPECT_EQ(0, memcmp(buffer2, buffer3, 1500)); 62 EXPECT_EQ(0, memcmp(buffer2, buffer3, 1500));
62 EXPECT_EQ(1500, entry1->ReadData(1, 5000, buffer2, sizeof(buffer2), NULL)); 63 EXPECT_EQ(1500, entry1->ReadData(1, 5000, buffer2, sizeof(buffer2), NULL));
63 64
64 EXPECT_EQ(0, entry1->ReadData(1, 6500, buffer2, sizeof(buffer2), NULL)); 65 EXPECT_EQ(0, entry1->ReadData(1, 6500, buffer2, sizeof(buffer2), NULL));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 MessageLoopHelper helper; 111 MessageLoopHelper helper;
111 112
112 char buffer1[10]; 113 char buffer1[10];
113 char buffer2[5000]; 114 char buffer2[5000];
114 char buffer3[10000]; 115 char buffer3[10000];
115 CacheTestFillBuffer(buffer1, sizeof(buffer1), false); 116 CacheTestFillBuffer(buffer1, sizeof(buffer1), false);
116 CacheTestFillBuffer(buffer2, sizeof(buffer2), false); 117 CacheTestFillBuffer(buffer2, sizeof(buffer2), false);
117 CacheTestFillBuffer(buffer3, sizeof(buffer3), false); 118 CacheTestFillBuffer(buffer3, sizeof(buffer3), false);
118 119
119 EXPECT_EQ(0, entry1->ReadData(0, 0, buffer1, sizeof(buffer1), &callback1)); 120 EXPECT_EQ(0, entry1->ReadData(0, 0, buffer1, sizeof(buffer1), &callback1));
120 base::strlcpy(buffer1, "the data", sizeof(buffer1)); 121 base::strlcpy(buffer1, "the data", arraysize(buffer1));
121 int expected = 0; 122 int expected = 0;
122 int ret = entry1->WriteData(0, 0, buffer1, sizeof(buffer1), &callback2, 123 int ret = entry1->WriteData(0, 0, buffer1, sizeof(buffer1), &callback2,
123 false); 124 false);
124 EXPECT_TRUE(10 == ret || net::ERR_IO_PENDING == ret); 125 EXPECT_TRUE(10 == ret || net::ERR_IO_PENDING == ret);
125 if (net::ERR_IO_PENDING == ret) 126 if (net::ERR_IO_PENDING == ret)
126 expected++; 127 expected++;
127 128
128 memset(buffer2, 0, sizeof(buffer1)); 129 memset(buffer2, 0, sizeof(buffer1));
129 ret = entry1->ReadData(0, 0, buffer2, sizeof(buffer1), &callback3); 130 ret = entry1->ReadData(0, 0, buffer2, sizeof(buffer1), &callback3);
130 EXPECT_TRUE(10 == ret || net::ERR_IO_PENDING == ret); 131 EXPECT_TRUE(10 == ret || net::ERR_IO_PENDING == ret);
131 if (net::ERR_IO_PENDING == ret) 132 if (net::ERR_IO_PENDING == ret)
132 expected++; 133 expected++;
133 134
134 g_cache_tests_max_id = 3; 135 g_cache_tests_max_id = 3;
135 EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected)); 136 EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected));
136 EXPECT_STREQ("the data", buffer2); 137 EXPECT_STREQ("the data", buffer2);
137 138
138 base::strlcpy(buffer2, "The really big data goes here", sizeof(buffer2)); 139 base::strlcpy(buffer2, "The really big data goes here", arraysize(buffer2));
139 ret = entry1->WriteData(1, 1500, buffer2, sizeof(buffer2), &callback4, false); 140 ret = entry1->WriteData(1, 1500, buffer2, sizeof(buffer2), &callback4, false);
140 EXPECT_TRUE(5000 == ret || net::ERR_IO_PENDING == ret); 141 EXPECT_TRUE(5000 == ret || net::ERR_IO_PENDING == ret);
141 if (net::ERR_IO_PENDING == ret) 142 if (net::ERR_IO_PENDING == ret)
142 expected++; 143 expected++;
143 144
144 memset(buffer3, 0, sizeof(buffer2)); 145 memset(buffer3, 0, sizeof(buffer2));
145 ret = entry1->ReadData(1, 1511, buffer3, sizeof(buffer2), &callback5); 146 ret = entry1->ReadData(1, 1511, buffer3, sizeof(buffer2), &callback5);
146 EXPECT_TRUE(4989 == ret || net::ERR_IO_PENDING == ret); 147 EXPECT_TRUE(4989 == ret || net::ERR_IO_PENDING == ret);
147 if (net::ERR_IO_PENDING == ret) 148 if (net::ERR_IO_PENDING == ret)
148 expected++; 149 expected++;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 InternalAsyncIO(); 216 InternalAsyncIO();
216 } 217 }
217 218
218 void DiskCacheEntryTest::ExternalSyncIO() { 219 void DiskCacheEntryTest::ExternalSyncIO() {
219 disk_cache::Entry *entry1; 220 disk_cache::Entry *entry1;
220 ASSERT_TRUE(cache_->CreateEntry("the first key", &entry1)); 221 ASSERT_TRUE(cache_->CreateEntry("the first key", &entry1));
221 222
222 char buffer1[17000], buffer2[25000]; 223 char buffer1[17000], buffer2[25000];
223 CacheTestFillBuffer(buffer1, sizeof(buffer1), false); 224 CacheTestFillBuffer(buffer1, sizeof(buffer1), false);
224 CacheTestFillBuffer(buffer2, sizeof(buffer2), false); 225 CacheTestFillBuffer(buffer2, sizeof(buffer2), false);
225 base::strlcpy(buffer1, "the data", sizeof(buffer1)); 226 base::strlcpy(buffer1, "the data", arraysize(buffer1));
226 EXPECT_EQ(17000, entry1->WriteData(0, 0, buffer1, sizeof(buffer1), NULL, 227 EXPECT_EQ(17000, entry1->WriteData(0, 0, buffer1, sizeof(buffer1), NULL,
227 false)); 228 false));
228 memset(buffer1, 0, sizeof(buffer1)); 229 memset(buffer1, 0, sizeof(buffer1));
229 EXPECT_EQ(17000, entry1->ReadData(0, 0, buffer1, sizeof(buffer1), NULL)); 230 EXPECT_EQ(17000, entry1->ReadData(0, 0, buffer1, sizeof(buffer1), NULL));
230 EXPECT_STREQ("the data", buffer1); 231 EXPECT_STREQ("the data", buffer1);
231 232
232 base::strlcpy(buffer2, "The really big data goes here", sizeof(buffer2)); 233 base::strlcpy(buffer2, "The really big data goes here", arraysize(buffer2));
233 EXPECT_EQ(25000, entry1->WriteData(1, 10000, buffer2, sizeof(buffer2), NULL, 234 EXPECT_EQ(25000, entry1->WriteData(1, 10000, buffer2, sizeof(buffer2), NULL,
234 false)); 235 false));
235 memset(buffer2, 0, sizeof(buffer2)); 236 memset(buffer2, 0, sizeof(buffer2));
236 EXPECT_EQ(24989, entry1->ReadData(1, 10011, buffer2, sizeof(buffer2), NULL)); 237 EXPECT_EQ(24989, entry1->ReadData(1, 10011, buffer2, sizeof(buffer2), NULL));
237 EXPECT_STREQ("big data goes here", buffer2); 238 EXPECT_STREQ("big data goes here", buffer2);
238 EXPECT_EQ(25000, entry1->ReadData(1, 0, buffer2, sizeof(buffer2), NULL)); 239 EXPECT_EQ(25000, entry1->ReadData(1, 0, buffer2, sizeof(buffer2), NULL));
239 EXPECT_EQ(0, memcmp(buffer2, buffer2, 10000)); 240 EXPECT_EQ(0, memcmp(buffer2, buffer2, 10000));
240 EXPECT_EQ(5000, entry1->ReadData(1, 30000, buffer2, sizeof(buffer2), NULL)); 241 EXPECT_EQ(5000, entry1->ReadData(1, 30000, buffer2, sizeof(buffer2), NULL));
241 242
242 EXPECT_EQ(0, entry1->ReadData(1, 35000, buffer2, sizeof(buffer2), NULL)); 243 EXPECT_EQ(0, entry1->ReadData(1, 35000, buffer2, sizeof(buffer2), NULL));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 g_cache_tests_max_id = 0; 281 g_cache_tests_max_id = 0;
281 g_cache_tests_received = 0; 282 g_cache_tests_received = 0;
282 int expected = 0; 283 int expected = 0;
283 284
284 MessageLoopHelper helper; 285 MessageLoopHelper helper;
285 286
286 char buffer1[17000], buffer2[25000], buffer3[25000]; 287 char buffer1[17000], buffer2[25000], buffer3[25000];
287 CacheTestFillBuffer(buffer1, sizeof(buffer1), false); 288 CacheTestFillBuffer(buffer1, sizeof(buffer1), false);
288 CacheTestFillBuffer(buffer2, sizeof(buffer2), false); 289 CacheTestFillBuffer(buffer2, sizeof(buffer2), false);
289 CacheTestFillBuffer(buffer3, sizeof(buffer3), false); 290 CacheTestFillBuffer(buffer3, sizeof(buffer3), false);
290 base::strlcpy(buffer1, "the data", sizeof(buffer1)); 291 base::strlcpy(buffer1, "the data", arraysize(buffer1));
291 int ret = entry1->WriteData(0, 0, buffer1, sizeof(buffer1), &callback1, 292 int ret = entry1->WriteData(0, 0, buffer1, sizeof(buffer1), &callback1,
292 false); 293 false);
293 EXPECT_TRUE(17000 == ret || net::ERR_IO_PENDING == ret); 294 EXPECT_TRUE(17000 == ret || net::ERR_IO_PENDING == ret);
294 if (net::ERR_IO_PENDING == ret) 295 if (net::ERR_IO_PENDING == ret)
295 expected++; 296 expected++;
296 297
297 g_cache_tests_max_id = 1; 298 g_cache_tests_max_id = 1;
298 EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected)); 299 EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected));
299 300
300 memset(buffer2, 0, sizeof(buffer1)); 301 memset(buffer2, 0, sizeof(buffer1));
301 ret = entry1->ReadData(0, 0, buffer2, sizeof(buffer1), &callback2); 302 ret = entry1->ReadData(0, 0, buffer2, sizeof(buffer1), &callback2);
302 EXPECT_TRUE(17000 == ret || net::ERR_IO_PENDING == ret); 303 EXPECT_TRUE(17000 == ret || net::ERR_IO_PENDING == ret);
303 if (net::ERR_IO_PENDING == ret) 304 if (net::ERR_IO_PENDING == ret)
304 expected++; 305 expected++;
305 306
306 g_cache_tests_max_id = 2; 307 g_cache_tests_max_id = 2;
307 EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected)); 308 EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected));
308 EXPECT_STREQ("the data", buffer1); 309 EXPECT_STREQ("the data", buffer1);
309 310
310 base::strlcpy(buffer2, "The really big data goes here", sizeof(buffer2)); 311 base::strlcpy(buffer2, "The really big data goes here", arraysize(buffer2));
311 ret = entry1->WriteData(1, 10000, buffer2, sizeof(buffer2), &callback3, 312 ret = entry1->WriteData(1, 10000, buffer2, sizeof(buffer2), &callback3,
312 false); 313 false);
313 EXPECT_TRUE(25000 == ret || net::ERR_IO_PENDING == ret); 314 EXPECT_TRUE(25000 == ret || net::ERR_IO_PENDING == ret);
314 if (net::ERR_IO_PENDING == ret) 315 if (net::ERR_IO_PENDING == ret)
315 expected++; 316 expected++;
316 317
317 g_cache_tests_max_id = 3; 318 g_cache_tests_max_id = 3;
318 EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected)); 319 EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected));
319 320
320 memset(buffer3, 0, sizeof(buffer3)); 321 memset(buffer3, 0, sizeof(buffer3));
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 void DiskCacheEntryTest::GrowData() { 459 void DiskCacheEntryTest::GrowData() {
459 std::string key1("the first key"); 460 std::string key1("the first key");
460 disk_cache::Entry *entry1, *entry2; 461 disk_cache::Entry *entry1, *entry2;
461 ASSERT_TRUE(cache_->CreateEntry(key1, &entry1)); 462 ASSERT_TRUE(cache_->CreateEntry(key1, &entry1));
462 463
463 char buffer1[20000]; 464 char buffer1[20000];
464 char buffer2[20000]; 465 char buffer2[20000];
465 CacheTestFillBuffer(buffer1, sizeof(buffer1), false); 466 CacheTestFillBuffer(buffer1, sizeof(buffer1), false);
466 memset(buffer2, 0, sizeof(buffer2)); 467 memset(buffer2, 0, sizeof(buffer2));
467 468
468 base::strlcpy(buffer1, "the data", sizeof(buffer1)); 469 base::strlcpy(buffer1, "the data", arraysize(buffer1));
469 EXPECT_EQ(10, entry1->WriteData(0, 0, buffer1, 10, NULL, false)); 470 EXPECT_EQ(10, entry1->WriteData(0, 0, buffer1, 10, NULL, false));
470 EXPECT_EQ(10, entry1->ReadData(0, 0, buffer2, 10, NULL)); 471 EXPECT_EQ(10, entry1->ReadData(0, 0, buffer2, 10, NULL));
471 EXPECT_STREQ("the data", buffer2); 472 EXPECT_STREQ("the data", buffer2);
472 EXPECT_EQ(10, entry1->GetDataSize(0)); 473 EXPECT_EQ(10, entry1->GetDataSize(0));
473 474
474 EXPECT_EQ(2000, entry1->WriteData(0, 0, buffer1, 2000, NULL, false)); 475 EXPECT_EQ(2000, entry1->WriteData(0, 0, buffer1, 2000, NULL, false));
475 EXPECT_EQ(2000, entry1->GetDataSize(0)); 476 EXPECT_EQ(2000, entry1->GetDataSize(0));
476 EXPECT_EQ(2000, entry1->ReadData(0, 0, buffer2, 2000, NULL)); 477 EXPECT_EQ(2000, entry1->ReadData(0, 0, buffer2, 2000, NULL));
477 EXPECT_TRUE(!memcmp(buffer1, buffer2, 2000)); 478 EXPECT_TRUE(!memcmp(buffer1, buffer2, 2000));
478 479
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 InitCache(); 783 InitCache();
783 DoomEntry(); 784 DoomEntry();
784 } 785 }
785 786
786 TEST_F(DiskCacheEntryTest, MemoryOnlyDoomedEntry) { 787 TEST_F(DiskCacheEntryTest, MemoryOnlyDoomedEntry) {
787 SetMemoryOnlyMode(); 788 SetMemoryOnlyMode();
788 InitCache(); 789 InitCache();
789 DoomEntry(); 790 DoomEntry();
790 } 791 }
791 792
OLDNEW
« no previous file with comments | « net/disk_cache/backend_unittest.cc ('k') | net/disk_cache/mapped_file_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698