Chromium Code Reviews| Index: chrome/test/base/uma_histogram_helper.cc |
| diff --git a/chrome/test/base/uma_histogram_helper.cc b/chrome/test/base/uma_histogram_helper.cc |
| index 9b5122974bb6cc4ede50a82bc235d7b83f0a3c45..2616cba713eff4144fcf8e5f2a311983e3ac279b 100644 |
| --- a/chrome/test/base/uma_histogram_helper.cc |
| +++ b/chrome/test/base/uma_histogram_helper.cc |
| @@ -11,6 +11,25 @@ |
| #include "content/public/browser/histogram_fetcher.h" |
| UMAHistogramHelper::UMAHistogramHelper() { |
| + base::StatisticsRecorder::Initialize(); |
| +} |
| + |
| +UMAHistogramHelper::~UMAHistogramHelper() { |
| +} |
| + |
| +void UMAHistogramHelper::PrepareSnapshot(const char* histogram_names[], |
| + int num_histograms) { |
| + for (int i = 0; i < num_histograms; i++) { |
|
Ilya Sherman
2014/06/13 19:58:12
nit: "++i"
Mike Lerman
2014/06/16 14:59:13
Done.
|
| + std::string histogram_name = histogram_names[i]; |
| + |
| + base::HistogramBase* histogram = |
| + base::StatisticsRecorder::FindHistogram(histogram_name); |
| + // If there is no histogram present, then don't record a snapshot. The logic |
| + // in the Expect* methods will act to treat no histogram equivalent to |
| + // samples with zeros. |
| + if (histogram) |
| + histogram_snapshots[histogram_name] = histogram->SnapshotSamples(); |
| + } |
| } |
| void UMAHistogramHelper::Fetch() { |
| @@ -82,18 +101,25 @@ void UMAHistogramHelper::CheckBucketCount( |
| base::HistogramBase::Sample sample, |
| base::HistogramBase::Count expected_count, |
| base::HistogramSamples& samples) { |
| - EXPECT_EQ(expected_count, samples.GetCount(sample)) |
| + int actual_count = samples.GetCount(sample); |
| + if (histogram_snapshots.count(name)) |
| + actual_count -= histogram_snapshots[name]->GetCount(sample); |
| + EXPECT_EQ(expected_count, actual_count) |
| << "Histogram \"" << name |
| << "\" does not have the right number of samples (" << expected_count |
| - << ") in the expected bucket (" << sample << ")."; |
| + << ") in the expected bucket (" << sample << "). It has (" |
| + << actual_count << ")."; |
| } |
| void UMAHistogramHelper::CheckTotalCount( |
| const std::string& name, |
| base::HistogramBase::Count expected_count, |
| base::HistogramSamples& samples) { |
| - EXPECT_EQ(expected_count, samples.TotalCount()) |
| + int actual_count = samples.TotalCount(); |
| + if (histogram_snapshots.count(name)) |
| + actual_count -= histogram_snapshots[name]->TotalCount(); |
| + EXPECT_EQ(expected_count, actual_count) |
| << "Histogram \"" << name |
| << "\" does not have the right total number of samples (" |
| - << expected_count << ")."; |
| + << expected_count << "). It has (" << actual_count << ")."; |
| } |