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

Side by Side Diff: base/metrics/persistent_sample_map_unittest.cc

Issue 1909673002: Support negative sample values in PersistentHistogramMap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use separate flag to indicate 'import all' Created 4 years, 8 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/metrics/persistent_sample_map.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 (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 <memory> 7 #include <memory>
8 8
9 #include "base/metrics/persistent_histogram_allocator.h" 9 #include "base/metrics/persistent_histogram_allocator.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 86
87 TEST(PersistentSampleMapTest, PersistenceTest) { 87 TEST(PersistentSampleMapTest, PersistenceTest) {
88 LocalPersistentMemoryAllocator allocator(64 << 10, 0, ""); // 64 KiB 88 LocalPersistentMemoryAllocator allocator(64 << 10, 0, ""); // 64 KiB
89 89
90 HistogramSamples::Metadata meta12; 90 HistogramSamples::Metadata meta12;
91 PersistentSparseHistogramDataManager manager1(&allocator); 91 PersistentSparseHistogramDataManager manager1(&allocator);
92 PersistentSampleMap samples1(12, &manager1, &meta12); 92 PersistentSampleMap samples1(12, &manager1, &meta12);
93 samples1.Accumulate(1, 100); 93 samples1.Accumulate(1, 100);
94 samples1.Accumulate(2, 200); 94 samples1.Accumulate(2, 200);
95 samples1.Accumulate(1, -200); 95 samples1.Accumulate(1, -200);
96 samples1.Accumulate(-1, 1);
96 EXPECT_EQ(-100, samples1.GetCount(1)); 97 EXPECT_EQ(-100, samples1.GetCount(1));
97 EXPECT_EQ(200, samples1.GetCount(2)); 98 EXPECT_EQ(200, samples1.GetCount(2));
98 EXPECT_EQ(300, samples1.sum()); 99 EXPECT_EQ(1, samples1.GetCount(-1));
99 EXPECT_EQ(100, samples1.TotalCount()); 100 EXPECT_EQ(299, samples1.sum());
101 EXPECT_EQ(101, samples1.TotalCount());
100 EXPECT_EQ(samples1.redundant_count(), samples1.TotalCount()); 102 EXPECT_EQ(samples1.redundant_count(), samples1.TotalCount());
101 103
102 PersistentSparseHistogramDataManager manager2(&allocator); 104 PersistentSparseHistogramDataManager manager2(&allocator);
103 PersistentSampleMap samples2(12, &manager2, &meta12); 105 PersistentSampleMap samples2(12, &manager2, &meta12);
104 EXPECT_EQ(samples1.id(), samples2.id()); 106 EXPECT_EQ(samples1.id(), samples2.id());
105 EXPECT_EQ(samples1.sum(), samples2.sum()); 107 EXPECT_EQ(samples1.sum(), samples2.sum());
106 EXPECT_EQ(samples1.redundant_count(), samples2.redundant_count()); 108 EXPECT_EQ(samples1.redundant_count(), samples2.redundant_count());
107 EXPECT_EQ(samples1.TotalCount(), samples2.TotalCount()); 109 EXPECT_EQ(samples1.TotalCount(), samples2.TotalCount());
108 EXPECT_EQ(-100, samples2.GetCount(1)); 110 EXPECT_EQ(-100, samples2.GetCount(1));
109 EXPECT_EQ(200, samples2.GetCount(2)); 111 EXPECT_EQ(200, samples2.GetCount(2));
110 EXPECT_EQ(300, samples2.sum()); 112 EXPECT_EQ(1, samples2.GetCount(-1));
111 EXPECT_EQ(100, samples2.TotalCount()); 113 EXPECT_EQ(299, samples2.sum());
114 EXPECT_EQ(101, samples2.TotalCount());
112 EXPECT_EQ(samples2.redundant_count(), samples2.TotalCount()); 115 EXPECT_EQ(samples2.redundant_count(), samples2.TotalCount());
113 116
117 samples1.Accumulate(-1, -1);
114 EXPECT_EQ(0, samples2.GetCount(3)); 118 EXPECT_EQ(0, samples2.GetCount(3));
115 EXPECT_EQ(0, samples1.GetCount(3)); 119 EXPECT_EQ(0, samples1.GetCount(3));
116 samples2.Accumulate(3, 300); 120 samples2.Accumulate(3, 300);
117 EXPECT_EQ(300, samples2.GetCount(3)); 121 EXPECT_EQ(300, samples2.GetCount(3));
118 EXPECT_EQ(300, samples1.GetCount(3)); 122 EXPECT_EQ(300, samples1.GetCount(3));
119 EXPECT_EQ(samples1.sum(), samples2.sum()); 123 EXPECT_EQ(samples1.sum(), samples2.sum());
120 EXPECT_EQ(samples1.redundant_count(), samples2.redundant_count()); 124 EXPECT_EQ(samples1.redundant_count(), samples2.redundant_count());
121 EXPECT_EQ(samples1.TotalCount(), samples2.TotalCount()); 125 EXPECT_EQ(samples1.TotalCount(), samples2.TotalCount());
122 126
123 EXPECT_EQ(0, samples2.GetCount(4)); 127 EXPECT_EQ(0, samples2.GetCount(4));
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 243
240 samples.Accumulate(1, 100); 244 samples.Accumulate(1, 100);
241 it = samples.Iterator(); 245 it = samples.Iterator();
242 EXPECT_FALSE(it->Done()); 246 EXPECT_FALSE(it->Done());
243 } 247 }
244 #endif 248 #endif
245 // (!defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)) && GTEST_HAS_DEATH_TEST 249 // (!defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)) && GTEST_HAS_DEATH_TEST
246 250
247 } // namespace 251 } // namespace
248 } // namespace base 252 } // namespace base
OLDNEW
« no previous file with comments | « base/metrics/persistent_sample_map.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698