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

Side by Side Diff: base/debug/activity_tracker_unittest.cc

Issue 2738493004: Support zero-sized values. (Closed)
Patch Set: Created 3 years, 9 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 | « base/debug/activity_tracker.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/debug/activity_tracker.h" 5 #include "base/debug/activity_tracker.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/files/file.h" 10 #include "base/files/file.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 return GlobalActivityTracker::Get()->user_data_allocator_.cache_used(); 84 return GlobalActivityTracker::Get()->user_data_allocator_.cache_used();
85 } 85 }
86 86
87 static void DoNothing() {} 87 static void DoNothing() {}
88 }; 88 };
89 89
90 TEST_F(ActivityTrackerTest, UserDataTest) { 90 TEST_F(ActivityTrackerTest, UserDataTest) {
91 char buffer[256]; 91 char buffer[256];
92 memset(buffer, 0, sizeof(buffer)); 92 memset(buffer, 0, sizeof(buffer));
93 ActivityUserData data(buffer, sizeof(buffer)); 93 ActivityUserData data(buffer, sizeof(buffer));
94 ASSERT_EQ(sizeof(buffer) - 8, data.available_); 94 const size_t space = sizeof(buffer) - 8;
95 ASSERT_EQ(space, data.available_);
95 96
96 data.SetInt("foo", 1); 97 data.SetInt("foo", 1);
97 ASSERT_EQ(sizeof(buffer) - 8 - 24, data.available_); 98 ASSERT_EQ(space - 24, data.available_);
98 99
99 data.SetUint("b", 1U); // Small names fit beside header in a word. 100 data.SetUint("b", 1U); // Small names fit beside header in a word.
100 ASSERT_EQ(sizeof(buffer) - 8 - 24 - 16, data.available_); 101 ASSERT_EQ(space - 24 - 16, data.available_);
101 102
102 data.Set("c", buffer, 10); 103 data.Set("c", buffer, 10);
103 ASSERT_EQ(sizeof(buffer) - 8 - 24 - 16 - 24, data.available_); 104 ASSERT_EQ(space - 24 - 16 - 24, data.available_);
104 105
105 data.SetString("dear john", "it's been fun"); 106 data.SetString("dear john", "it's been fun");
106 ASSERT_EQ(sizeof(buffer) - 8 - 24 - 16 - 24 - 32, data.available_); 107 ASSERT_EQ(space - 24 - 16 - 24 - 32, data.available_);
107 108
108 data.Set("c", buffer, 20); 109 data.Set("c", buffer, 20);
109 ASSERT_EQ(sizeof(buffer) - 8 - 24 - 16 - 24 - 32, data.available_); 110 ASSERT_EQ(space - 24 - 16 - 24 - 32, data.available_);
110 111
111 data.SetString("dear john", "but we're done together"); 112 data.SetString("dear john", "but we're done together");
112 ASSERT_EQ(sizeof(buffer) - 8 - 24 - 16 - 24 - 32, data.available_); 113 ASSERT_EQ(space - 24 - 16 - 24 - 32, data.available_);
113 114
114 data.SetString("dear john", "bye"); 115 data.SetString("dear john", "bye");
115 ASSERT_EQ(sizeof(buffer) - 8 - 24 - 16 - 24 - 32, data.available_); 116 ASSERT_EQ(space - 24 - 16 - 24 - 32, data.available_);
116 117
117 data.SetChar("d", 'x'); 118 data.SetChar("d", 'x');
118 ASSERT_EQ(sizeof(buffer) - 8 - 24 - 16 - 24 - 32 - 8, data.available_); 119 ASSERT_EQ(space - 24 - 16 - 24 - 32 - 8, data.available_);
119 120
120 data.SetBool("ee", true); 121 data.SetBool("ee", true);
121 ASSERT_EQ(sizeof(buffer) - 8 - 24 - 16 - 24 - 32 - 8 - 16, data.available_); 122 ASSERT_EQ(space - 24 - 16 - 24 - 32 - 8 - 16, data.available_);
123
124 data.SetString("f", "");
125 ASSERT_EQ(space - 24 - 16 - 24 - 32 - 8 - 16 - 8, data.available_);
122 } 126 }
123 127
124 TEST_F(ActivityTrackerTest, PushPopTest) { 128 TEST_F(ActivityTrackerTest, PushPopTest) {
125 std::unique_ptr<ThreadActivityTracker> tracker = CreateActivityTracker(); 129 std::unique_ptr<ThreadActivityTracker> tracker = CreateActivityTracker();
126 ThreadActivityTracker::Snapshot snapshot; 130 ThreadActivityTracker::Snapshot snapshot;
127 131
128 ASSERT_TRUE(tracker->CreateSnapshot(&snapshot)); 132 ASSERT_TRUE(tracker->CreateSnapshot(&snapshot));
129 ASSERT_EQ(0U, snapshot.activity_stack_depth); 133 ASSERT_EQ(0U, snapshot.activity_stack_depth);
130 ASSERT_EQ(0U, snapshot.activity_stack.size()); 134 ASSERT_EQ(0U, snapshot.activity_stack.size());
131 135
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 EXPECT_EQ(starting_inactive, GetGlobalInactiveTrackerCount()); 331 EXPECT_EQ(starting_inactive, GetGlobalInactiveTrackerCount());
328 332
329 t2.Exit(); 333 t2.Exit();
330 t2.Join(); 334 t2.Join();
331 EXPECT_EQ(starting_active, GetGlobalActiveTrackerCount()); 335 EXPECT_EQ(starting_active, GetGlobalActiveTrackerCount());
332 EXPECT_EQ(starting_inactive + 1, GetGlobalInactiveTrackerCount()); 336 EXPECT_EQ(starting_inactive + 1, GetGlobalInactiveTrackerCount());
333 } 337 }
334 338
335 } // namespace debug 339 } // namespace debug
336 } // namespace base 340 } // namespace base
OLDNEW
« no previous file with comments | « base/debug/activity_tracker.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698