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

Side by Side Diff: base/test/histogram_tester.cc

Issue 2796283005: Adding UseCounter specific for extensions (Closed)
Patch Set: Fix compile err 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 | « base/test/histogram_tester.h ('k') | third_party/WebKit/Source/core/frame/UseCounter.h » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/test/histogram_tester.h" 5 #include "base/test/histogram_tester.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/metrics/histogram_samples.h" 10 #include "base/metrics/histogram_samples.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 for (auto it = snapshot->Iterator(); !it->Done(); it->Next()) { 88 for (auto it = snapshot->Iterator(); !it->Done(); it->Next()) {
89 HistogramBase::Sample sample; 89 HistogramBase::Sample sample;
90 HistogramBase::Count count; 90 HistogramBase::Count count;
91 it->Get(&sample, nullptr, &count); 91 it->Get(&sample, nullptr, &count);
92 samples.push_back(Bucket(sample, count)); 92 samples.push_back(Bucket(sample, count));
93 } 93 }
94 } 94 }
95 return samples; 95 return samples;
96 } 96 }
97 97
98 HistogramBase::Count HistogramTester::GetBucketCount(
99 const std::string& name,
100 HistogramBase::Sample sample) const {
101 HistogramBase* histogram = StatisticsRecorder::FindHistogram(name);
102 EXPECT_NE(nullptr, histogram)
103 << "Histogram \"" << name << "\" does not exist.";
104 HistogramBase::Count count = 0;
105 if (histogram) {
106 std::unique_ptr<HistogramSamples> samples = histogram->SnapshotSamples();
107 GetBucketCountForSamples(name, sample, *samples, &count);
108 }
109 return count;
110 }
111
112 void HistogramTester::GetBucketCountForSamples(
113 const std::string& name,
114 HistogramBase::Sample sample,
115 const HistogramSamples& samples,
116 HistogramBase::Count* count) const {
117 *count = samples.GetCount(sample);
118 auto histogram_data = histograms_snapshot_.find(name);
119 if (histogram_data != histograms_snapshot_.end())
120 *count -= histogram_data->second->GetCount(sample);
121 }
122
98 HistogramTester::CountsMap HistogramTester::GetTotalCountsForPrefix( 123 HistogramTester::CountsMap HistogramTester::GetTotalCountsForPrefix(
99 const std::string& prefix) const { 124 const std::string& prefix) const {
100 EXPECT_TRUE(prefix.find('.') != std::string::npos) 125 EXPECT_TRUE(prefix.find('.') != std::string::npos)
101 << "|prefix| ought to contain at least one period, to avoid matching too" 126 << "|prefix| ought to contain at least one period, to avoid matching too"
102 << " many histograms."; 127 << " many histograms.";
103 128
104 // Find candidate matches by using the logic built into GetSnapshot(). 129 // Find candidate matches by using the logic built into GetSnapshot().
105 StatisticsRecorder::Histograms candidate_matches; 130 StatisticsRecorder::Histograms candidate_matches;
106 StatisticsRecorder::GetSnapshot(prefix, &candidate_matches); 131 StatisticsRecorder::GetSnapshot(prefix, &candidate_matches);
107 132
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 auto original_samples_it = histograms_snapshot_.find(histogram_name); 165 auto original_samples_it = histograms_snapshot_.find(histogram_name);
141 if (original_samples_it != histograms_snapshot_.end()) 166 if (original_samples_it != histograms_snapshot_.end())
142 named_samples->Subtract(*original_samples_it->second.get()); 167 named_samples->Subtract(*original_samples_it->second.get());
143 return named_samples; 168 return named_samples;
144 } 169 }
145 170
146 void HistogramTester::CheckBucketCount(const std::string& name, 171 void HistogramTester::CheckBucketCount(const std::string& name,
147 HistogramBase::Sample sample, 172 HistogramBase::Sample sample,
148 HistogramBase::Count expected_count, 173 HistogramBase::Count expected_count,
149 const HistogramSamples& samples) const { 174 const HistogramSamples& samples) const {
150 int actual_count = samples.GetCount(sample); 175 int actual_count;
151 auto histogram_data = histograms_snapshot_.find(name); 176 GetBucketCountForSamples(name, sample, samples, &actual_count);
152 if (histogram_data != histograms_snapshot_.end())
153 actual_count -= histogram_data->second->GetCount(sample);
154 177
155 EXPECT_EQ(expected_count, actual_count) 178 EXPECT_EQ(expected_count, actual_count)
156 << "Histogram \"" << name 179 << "Histogram \"" << name
157 << "\" does not have the right number of samples (" << expected_count 180 << "\" does not have the right number of samples (" << expected_count
158 << ") in the expected bucket (" << sample << "). It has (" << actual_count 181 << ") in the expected bucket (" << sample << "). It has (" << actual_count
159 << ")."; 182 << ").";
160 } 183 }
161 184
162 void HistogramTester::CheckTotalCount(const std::string& name, 185 void HistogramTester::CheckTotalCount(const std::string& name,
163 HistogramBase::Count expected_count, 186 HistogramBase::Count expected_count,
(...skipping 11 matching lines...) Expand all
175 198
176 bool Bucket::operator==(const Bucket& other) const { 199 bool Bucket::operator==(const Bucket& other) const {
177 return min == other.min && count == other.count; 200 return min == other.min && count == other.count;
178 } 201 }
179 202
180 void PrintTo(const Bucket& bucket, std::ostream* os) { 203 void PrintTo(const Bucket& bucket, std::ostream* os) {
181 *os << "Bucket " << bucket.min << ": " << bucket.count; 204 *os << "Bucket " << bucket.min << ": " << bucket.count;
182 } 205 }
183 206
184 } // namespace base 207 } // namespace base
OLDNEW
« no previous file with comments | « base/test/histogram_tester.h ('k') | third_party/WebKit/Source/core/frame/UseCounter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698