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

Side by Side Diff: base/tracked_objects_unittest.cc

Issue 2881493004: Marshal 64 bit byte counts as double to the profiler. (Closed)
Patch Set: Fix the serialization unit test. Created 3 years, 7 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 | « no previous file | chrome/browser/task_profiler/task_profiler_data_serializer.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 // Test of classes in the tracked_objects.h classes. 5 // Test of classes in the tracked_objects.h classes.
6 6
7 #include "base/tracked_objects.h" 7 #include "base/tracked_objects.h"
8 8
9 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 const int32_t kLargerMaxAllocatedBytes = kMaxAllocatedBytes * 2; 339 const int32_t kLargerMaxAllocatedBytes = kMaxAllocatedBytes * 2;
340 data->RecordAllocations(kAllocOps, kFreeOps, kAllocatedBytes, kFreedBytes, 340 data->RecordAllocations(kAllocOps, kFreeOps, kAllocatedBytes, kFreedBytes,
341 kAllocOverheadBytes, kLargerMaxAllocatedBytes); 341 kAllocOverheadBytes, kLargerMaxAllocatedBytes);
342 EXPECT_EQ(data->alloc_ops(), 3 * kAllocOps); 342 EXPECT_EQ(data->alloc_ops(), 3 * kAllocOps);
343 EXPECT_EQ(data->free_ops(), 3 * kFreeOps); 343 EXPECT_EQ(data->free_ops(), 3 * kFreeOps);
344 EXPECT_EQ(data->allocated_bytes(), 3 * kAllocatedBytes); 344 EXPECT_EQ(data->allocated_bytes(), 3 * kAllocatedBytes);
345 EXPECT_EQ(data->freed_bytes(), 3 * kFreedBytes); 345 EXPECT_EQ(data->freed_bytes(), 3 * kFreedBytes);
346 EXPECT_EQ(data->alloc_overhead_bytes(), 3 * kAllocOverheadBytes); 346 EXPECT_EQ(data->alloc_overhead_bytes(), 3 * kAllocOverheadBytes);
347 EXPECT_EQ(data->max_allocated_bytes(), kLargerMaxAllocatedBytes); 347 EXPECT_EQ(data->max_allocated_bytes(), kLargerMaxAllocatedBytes);
348 348
349 // Saturate everything but aggregate byte counts. The byte counts will be 349 // Saturate everything but aggregate byte counts.
350 // pushed past the 32 bit value range. 350 // In the 32 bit implementation, this tests the case where the low-order
gab 2017/05/12 15:07:52 in the "64 bit implementation"?
Sigurður Ásgeirsson 2017/05/12 15:11:21 No, I specifically mean the 32 bit implementation,
gab 2017/05/12 15:13:41 Ah, indeed, right :)
351 data->RecordAllocations(INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX); 351 // word goes negative.
352 data->RecordAllocations(INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX); 352 data->RecordAllocations(INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX);
353 EXPECT_EQ(data->alloc_ops(), INT_MAX); 353 EXPECT_EQ(data->alloc_ops(), INT_MAX);
354 EXPECT_EQ(data->free_ops(), INT_MAX); 354 EXPECT_EQ(data->free_ops(), INT_MAX);
355 // The cumulative byte counts are 64 bit wide, and won't saturate easily.
356 EXPECT_EQ(data->allocated_bytes(),
357 static_cast<int64_t>(INT_MAX) +
358 static_cast<int64_t>(3 * kAllocatedBytes));
359 EXPECT_EQ(data->freed_bytes(),
360 static_cast<int64_t>(INT_MAX) + 3 * kFreedBytes);
361 EXPECT_EQ(data->alloc_overhead_bytes(),
362 static_cast<int64_t>(INT_MAX) + 3 * kAllocOverheadBytes);
363 EXPECT_EQ(data->max_allocated_bytes(), INT_MAX);
364
365 // The byte counts will be pushed past the 32 bit value range.
366 data->RecordAllocations(INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX);
367 EXPECT_EQ(data->alloc_ops(), INT_MAX);
368 EXPECT_EQ(data->free_ops(), INT_MAX);
355 // The cumulative byte counts are 64 bit wide, and won't saturate easily. 369 // The cumulative byte counts are 64 bit wide, and won't saturate easily.
356 EXPECT_EQ(data->allocated_bytes(), 370 EXPECT_EQ(data->allocated_bytes(),
357 2 * static_cast<int64_t>(INT_MAX) + 371 2 * static_cast<int64_t>(INT_MAX) +
358 static_cast<int64_t>(3 * kAllocatedBytes)); 372 static_cast<int64_t>(3 * kAllocatedBytes));
359 EXPECT_EQ(data->freed_bytes(), 373 EXPECT_EQ(data->freed_bytes(),
360 2 * static_cast<int64_t>(INT_MAX) + 3 * kFreedBytes); 374 2 * static_cast<int64_t>(INT_MAX) + 3 * kFreedBytes);
361 EXPECT_EQ(data->alloc_overhead_bytes(), 375 EXPECT_EQ(data->alloc_overhead_bytes(),
362 2 * static_cast<int64_t>(INT_MAX) + 3 * kAllocOverheadBytes); 376 2 * static_cast<int64_t>(INT_MAX) + 3 * kAllocOverheadBytes);
363 EXPECT_EQ(data->max_allocated_bytes(), INT_MAX); 377 EXPECT_EQ(data->max_allocated_bytes(), INT_MAX);
364 } 378 }
(...skipping 1008 matching lines...) Expand 10 before | Expand all | Expand 10 after
1373 EXPECT_TRUE(thread.Start()); 1387 EXPECT_TRUE(thread.Start());
1374 } 1388 }
1375 } 1389 }
1376 1390
1377 // Expect one ThreadData instance for each element in |kThreadNames| and one 1391 // Expect one ThreadData instance for each element in |kThreadNames| and one
1378 // ThreadData instance for the main thread. 1392 // ThreadData instance for the main thread.
1379 EXPECT_EQ(static_cast<int>(arraysize(kThreadNames) + 1), GetNumThreadData()); 1393 EXPECT_EQ(static_cast<int>(arraysize(kThreadNames) + 1), GetNumThreadData());
1380 } 1394 }
1381 1395
1382 } // namespace tracked_objects 1396 } // namespace tracked_objects
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/task_profiler/task_profiler_data_serializer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698