| 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 |