OLD | NEW |
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 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
10 #include "base/metrics/statistics_recorder.h" | 10 #include "base/metrics/statistics_recorder.h" |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 EXPECT_EQ(4u, registered_histograms.size()); | 215 EXPECT_EQ(4u, registered_histograms.size()); |
216 } | 216 } |
217 | 217 |
218 TEST_F(StatisticsRecorderTest, RegisterHistogramWithMacros) { | 218 TEST_F(StatisticsRecorderTest, RegisterHistogramWithMacros) { |
219 StatisticsRecorder::Histograms registered_histograms; | 219 StatisticsRecorder::Histograms registered_histograms; |
220 | 220 |
221 HistogramBase* histogram = Histogram::FactoryGet( | 221 HistogramBase* histogram = Histogram::FactoryGet( |
222 "TestHistogramCounts", 1, 1000000, 50, HistogramBase::kNoFlags); | 222 "TestHistogramCounts", 1, 1000000, 50, HistogramBase::kNoFlags); |
223 | 223 |
224 // The histogram we got from macro is the same as from FactoryGet. | 224 // The histogram we got from macro is the same as from FactoryGet. |
225 HISTOGRAM_COUNTS("TestHistogramCounts", 30); | 225 LOCAL_HISTOGRAM_COUNTS("TestHistogramCounts", 30); |
226 registered_histograms.clear(); | 226 registered_histograms.clear(); |
227 StatisticsRecorder::GetHistograms(®istered_histograms); | 227 StatisticsRecorder::GetHistograms(®istered_histograms); |
228 ASSERT_EQ(1u, registered_histograms.size()); | 228 ASSERT_EQ(1u, registered_histograms.size()); |
229 EXPECT_EQ(histogram, registered_histograms[0]); | 229 EXPECT_EQ(histogram, registered_histograms[0]); |
230 | 230 |
231 HISTOGRAM_TIMES("TestHistogramTimes", TimeDelta::FromDays(1)); | 231 LOCAL_HISTOGRAM_TIMES("TestHistogramTimes", TimeDelta::FromDays(1)); |
232 HISTOGRAM_ENUMERATION("TestHistogramEnumeration", 20, 200); | 232 LOCAL_HISTOGRAM_ENUMERATION("TestHistogramEnumeration", 20, 200); |
233 | 233 |
234 registered_histograms.clear(); | 234 registered_histograms.clear(); |
235 StatisticsRecorder::GetHistograms(®istered_histograms); | 235 StatisticsRecorder::GetHistograms(®istered_histograms); |
236 EXPECT_EQ(3u, registered_histograms.size()); | 236 EXPECT_EQ(3u, registered_histograms.size()); |
237 | |
238 // Debugging only macros. | |
239 DHISTOGRAM_TIMES("TestHistogramDebugTimes", TimeDelta::FromDays(1)); | |
240 DHISTOGRAM_COUNTS("TestHistogramDebugCounts", 30); | |
241 registered_histograms.clear(); | |
242 StatisticsRecorder::GetHistograms(®istered_histograms); | |
243 #ifndef NDEBUG | |
244 EXPECT_EQ(5u, registered_histograms.size()); | |
245 #else | |
246 EXPECT_EQ(3u, registered_histograms.size()); | |
247 #endif | |
248 } | 237 } |
249 | 238 |
250 TEST_F(StatisticsRecorderTest, BucketRangesSharing) { | 239 TEST_F(StatisticsRecorderTest, BucketRangesSharing) { |
251 std::vector<const BucketRanges*> ranges; | 240 std::vector<const BucketRanges*> ranges; |
252 StatisticsRecorder::GetBucketRanges(&ranges); | 241 StatisticsRecorder::GetBucketRanges(&ranges); |
253 EXPECT_EQ(0u, ranges.size()); | 242 EXPECT_EQ(0u, ranges.size()); |
254 | 243 |
255 Histogram::FactoryGet("Histogram", 1, 64, 8, HistogramBase::kNoFlags); | 244 Histogram::FactoryGet("Histogram", 1, 64, 8, HistogramBase::kNoFlags); |
256 Histogram::FactoryGet("Histogram2", 1, 64, 8, HistogramBase::kNoFlags); | 245 Histogram::FactoryGet("Histogram2", 1, 64, 8, HistogramBase::kNoFlags); |
257 | 246 |
258 StatisticsRecorder::GetBucketRanges(&ranges); | 247 StatisticsRecorder::GetBucketRanges(&ranges); |
259 EXPECT_EQ(1u, ranges.size()); | 248 EXPECT_EQ(1u, ranges.size()); |
260 | 249 |
261 Histogram::FactoryGet("Histogram3", 1, 64, 16, HistogramBase::kNoFlags); | 250 Histogram::FactoryGet("Histogram3", 1, 64, 16, HistogramBase::kNoFlags); |
262 | 251 |
263 ranges.clear(); | 252 ranges.clear(); |
264 StatisticsRecorder::GetBucketRanges(&ranges); | 253 StatisticsRecorder::GetBucketRanges(&ranges); |
265 EXPECT_EQ(2u, ranges.size()); | 254 EXPECT_EQ(2u, ranges.size()); |
266 } | 255 } |
267 | 256 |
268 TEST_F(StatisticsRecorderTest, ToJSON) { | 257 TEST_F(StatisticsRecorderTest, ToJSON) { |
269 HISTOGRAM_COUNTS("TestHistogram1", 30); | 258 LOCAL_HISTOGRAM_COUNTS("TestHistogram1", 30); |
270 HISTOGRAM_COUNTS("TestHistogram1", 40); | 259 LOCAL_HISTOGRAM_COUNTS("TestHistogram1", 40); |
271 HISTOGRAM_COUNTS("TestHistogram2", 30); | 260 LOCAL_HISTOGRAM_COUNTS("TestHistogram2", 30); |
272 HISTOGRAM_COUNTS("TestHistogram2", 40); | 261 LOCAL_HISTOGRAM_COUNTS("TestHistogram2", 40); |
273 | 262 |
274 std::string json(StatisticsRecorder::ToJSON(std::string())); | 263 std::string json(StatisticsRecorder::ToJSON(std::string())); |
275 | 264 |
276 // Check for valid JSON. | 265 // Check for valid JSON. |
277 scoped_ptr<Value> root; | 266 scoped_ptr<Value> root; |
278 root.reset(JSONReader::Read(json)); | 267 root.reset(JSONReader::Read(json)); |
279 ASSERT_TRUE(root.get()); | 268 ASSERT_TRUE(root.get()); |
280 | 269 |
281 DictionaryValue* root_dict = NULL; | 270 DictionaryValue* root_dict = NULL; |
282 ASSERT_TRUE(root->GetAsDictionary(&root_dict)); | 271 ASSERT_TRUE(root->GetAsDictionary(&root_dict)); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 | 308 |
320 json.clear(); | 309 json.clear(); |
321 UninitializeStatisticsRecorder(); | 310 UninitializeStatisticsRecorder(); |
322 | 311 |
323 // No data should be returned. | 312 // No data should be returned. |
324 json = StatisticsRecorder::ToJSON(query); | 313 json = StatisticsRecorder::ToJSON(query); |
325 EXPECT_TRUE(json.empty()); | 314 EXPECT_TRUE(json.empty()); |
326 } | 315 } |
327 | 316 |
328 } // namespace base | 317 } // namespace base |
OLD | NEW |