OLD | NEW |
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/metrics/persistent_sample_map.h" | 5 #include "base/metrics/persistent_sample_map.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include <memory> |
| 8 |
8 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
9 | 10 |
10 namespace base { | 11 namespace base { |
11 namespace { | 12 namespace { |
12 | 13 |
13 TEST(PersistentSampleMapTest, AccumulateTest) { | 14 TEST(PersistentSampleMapTest, AccumulateTest) { |
14 LocalPersistentMemoryAllocator allocator(64 << 10, 0, ""); // 64 KiB | 15 LocalPersistentMemoryAllocator allocator(64 << 10, 0, ""); // 64 KiB |
15 | 16 |
16 HistogramSamples::Metadata* meta = | 17 HistogramSamples::Metadata* meta = |
17 allocator.GetAsObject<HistogramSamples::Metadata>( | 18 allocator.GetAsObject<HistogramSamples::Metadata>( |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 | 130 |
130 HistogramSamples::Metadata* meta = | 131 HistogramSamples::Metadata* meta = |
131 allocator.GetAsObject<HistogramSamples::Metadata>( | 132 allocator.GetAsObject<HistogramSamples::Metadata>( |
132 allocator.Allocate(sizeof(HistogramSamples::Metadata), 0), 0); | 133 allocator.Allocate(sizeof(HistogramSamples::Metadata), 0), 0); |
133 PersistentSampleMap samples(1, &allocator, meta); | 134 PersistentSampleMap samples(1, &allocator, meta); |
134 samples.Accumulate(1, 100); | 135 samples.Accumulate(1, 100); |
135 samples.Accumulate(2, 200); | 136 samples.Accumulate(2, 200); |
136 samples.Accumulate(4, -300); | 137 samples.Accumulate(4, -300); |
137 samples.Accumulate(5, 0); | 138 samples.Accumulate(5, 0); |
138 | 139 |
139 scoped_ptr<SampleCountIterator> it = samples.Iterator(); | 140 std::unique_ptr<SampleCountIterator> it = samples.Iterator(); |
140 | 141 |
141 HistogramBase::Sample min; | 142 HistogramBase::Sample min; |
142 HistogramBase::Sample max; | 143 HistogramBase::Sample max; |
143 HistogramBase::Count count; | 144 HistogramBase::Count count; |
144 | 145 |
145 it->Get(&min, &max, &count); | 146 it->Get(&min, &max, &count); |
146 EXPECT_EQ(1, min); | 147 EXPECT_EQ(1, min); |
147 EXPECT_EQ(2, max); | 148 EXPECT_EQ(2, max); |
148 EXPECT_EQ(100, count); | 149 EXPECT_EQ(100, count); |
149 EXPECT_FALSE(it->GetBucketIndex(NULL)); | 150 EXPECT_FALSE(it->GetBucketIndex(NULL)); |
(...skipping 30 matching lines...) Expand all Loading... |
180 HistogramSamples::Metadata* meta2 = | 181 HistogramSamples::Metadata* meta2 = |
181 allocator.GetAsObject<HistogramSamples::Metadata>( | 182 allocator.GetAsObject<HistogramSamples::Metadata>( |
182 allocator.Allocate(sizeof(HistogramSamples::Metadata), 0), 0); | 183 allocator.Allocate(sizeof(HistogramSamples::Metadata), 0), 0); |
183 PersistentSampleMap samples2(2, &allocator, meta2); | 184 PersistentSampleMap samples2(2, &allocator, meta2); |
184 samples2.Accumulate(5, 1); | 185 samples2.Accumulate(5, 1); |
185 samples2.Accumulate(20, 4); | 186 samples2.Accumulate(20, 4); |
186 samples2.Accumulate(25, 5); | 187 samples2.Accumulate(25, 5); |
187 | 188 |
188 samples.Subtract(samples2); | 189 samples.Subtract(samples2); |
189 | 190 |
190 scoped_ptr<SampleCountIterator> it = samples.Iterator(); | 191 std::unique_ptr<SampleCountIterator> it = samples.Iterator(); |
191 EXPECT_FALSE(it->Done()); | 192 EXPECT_FALSE(it->Done()); |
192 | 193 |
193 HistogramBase::Sample min; | 194 HistogramBase::Sample min; |
194 HistogramBase::Sample max; | 195 HistogramBase::Sample max; |
195 HistogramBase::Count count; | 196 HistogramBase::Count count; |
196 | 197 |
197 it->Get(&min, &max, &count); | 198 it->Get(&min, &max, &count); |
198 EXPECT_EQ(10, min); | 199 EXPECT_EQ(10, min); |
199 EXPECT_EQ(11, max); | 200 EXPECT_EQ(11, max); |
200 EXPECT_EQ(2, count); | 201 EXPECT_EQ(2, count); |
(...skipping 13 matching lines...) Expand all Loading... |
214 // Only run this test on builds that support catching a DCHECK crash. | 215 // Only run this test on builds that support catching a DCHECK crash. |
215 #if (!defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)) && GTEST_HAS_DEATH_TEST | 216 #if (!defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)) && GTEST_HAS_DEATH_TEST |
216 TEST(PersistentSampleMapIteratorDeathTest, IterateDoneTest) { | 217 TEST(PersistentSampleMapIteratorDeathTest, IterateDoneTest) { |
217 LocalPersistentMemoryAllocator allocator(64 << 10, 0, ""); // 64 KiB | 218 LocalPersistentMemoryAllocator allocator(64 << 10, 0, ""); // 64 KiB |
218 | 219 |
219 HistogramSamples::Metadata* meta = | 220 HistogramSamples::Metadata* meta = |
220 allocator.GetAsObject<HistogramSamples::Metadata>( | 221 allocator.GetAsObject<HistogramSamples::Metadata>( |
221 allocator.Allocate(sizeof(HistogramSamples::Metadata), 0), 0); | 222 allocator.Allocate(sizeof(HistogramSamples::Metadata), 0), 0); |
222 PersistentSampleMap samples(1, &allocator, meta); | 223 PersistentSampleMap samples(1, &allocator, meta); |
223 | 224 |
224 scoped_ptr<SampleCountIterator> it = samples.Iterator(); | 225 std::unique_ptr<SampleCountIterator> it = samples.Iterator(); |
225 | 226 |
226 EXPECT_TRUE(it->Done()); | 227 EXPECT_TRUE(it->Done()); |
227 | 228 |
228 HistogramBase::Sample min; | 229 HistogramBase::Sample min; |
229 HistogramBase::Sample max; | 230 HistogramBase::Sample max; |
230 HistogramBase::Count count; | 231 HistogramBase::Count count; |
231 EXPECT_DEATH(it->Get(&min, &max, &count), ""); | 232 EXPECT_DEATH(it->Get(&min, &max, &count), ""); |
232 | 233 |
233 EXPECT_DEATH(it->Next(), ""); | 234 EXPECT_DEATH(it->Next(), ""); |
234 | 235 |
235 samples.Accumulate(1, 100); | 236 samples.Accumulate(1, 100); |
236 it = samples.Iterator(); | 237 it = samples.Iterator(); |
237 EXPECT_FALSE(it->Done()); | 238 EXPECT_FALSE(it->Done()); |
238 } | 239 } |
239 #endif | 240 #endif |
240 // (!defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)) && GTEST_HAS_DEATH_TEST | 241 // (!defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)) && GTEST_HAS_DEATH_TEST |
241 | 242 |
242 } // namespace | 243 } // namespace |
243 } // namespace base | 244 } // namespace base |
OLD | NEW |