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

Unified Diff: chrome/test/base/uma_histogram_helper.h

Issue 309843002: Improve UMA tests; improve no-op reconcilor; new reconcilor test. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/signin/account_reconcilor_unittest.cc ('k') | chrome/test/base/uma_histogram_helper.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/base/uma_histogram_helper.h
diff --git a/chrome/test/base/uma_histogram_helper.h b/chrome/test/base/uma_histogram_helper.h
index 76e841fcfd3651266eb709273d8a9b20d44ff400..2feb4d534e0972b2836aa13ea54e474cfee4a976 100644
--- a/chrome/test/base/uma_histogram_helper.h
+++ b/chrome/test/base/uma_histogram_helper.h
@@ -5,6 +5,7 @@
#ifndef CHROME_TEST_BASE_UMA_HISTOGRAM_HELPER_H_
#define CHROME_TEST_BASE_UMA_HISTOGRAM_HELPER_H_
+#include "base/memory/linked_ptr.h"
#include "base/metrics/histogram.h"
#include "base/metrics/histogram_base.h"
#include "base/metrics/histogram_samples.h"
@@ -14,25 +15,40 @@
// intended.
class UMAHistogramHelper {
public:
+ // UMAHistogramHelper should be created before the execution of the test case.
UMAHistogramHelper();
+ ~UMAHistogramHelper();
+
+ // Parameters should be string literals of all histograms to snapshot.
+ // Call this before executing the test code. This method can be called
+ // multiple times. The existing snapshots are preserved, except when one of
+ // the |histogram_names| was previously passed as a parameter, then a new
+ // snapshot will replace the existing one.
+ void PrepareSnapshot(const char* const histogram_names[],
+ size_t num_histograms);
+
// Each child process may have its own histogram data, make sure this data
// gets accumulated into the browser process before we examine the histograms.
void Fetch();
// We know the exact number of samples in a bucket, and that no other bucket
- // should have samples.
+ // should have samples. If |PrepareSnapshot| was called for the histogram
+ // named |name| then the |expected_count| is the diff from the snapshot.
void ExpectUniqueSample(const std::string& name,
base::HistogramBase::Sample sample,
base::HistogramBase::Count expected_count);
// We know the exact number of samples in a bucket, but other buckets may
- // have samples as well.
+ // have samples as well. If |PrepareSnapshot| was called for histogram named
+ // |name| then the |expected_count| is the diff from the snapshot.
void ExpectBucketCount(const std::string& name,
base::HistogramBase::Sample sample,
base::HistogramBase::Count expected_count);
- // We don't know the values of the samples, but we know how many there are.
+ // We don't know the values of the samples, but we know how many there are. If
+ // |PrepareSnapshot| was called for |name| histogram, then the
+ // |count| is the diff from the snapshot.
void ExpectTotalCount(const std::string& name,
base::HistogramBase::Count count);
@@ -49,6 +65,10 @@ class UMAHistogramHelper {
base::HistogramSamples& samples);
DISALLOW_COPY_AND_ASSIGN(UMAHistogramHelper);
+
+ // The map from histogram names to their snapshots
+ std::map<std::string, linked_ptr<base::HistogramSamples> >
+ histogram_snapshots;
};
#endif // CHROME_TEST_BASE_UMA_HISTOGRAM_HELPER_H_
« no previous file with comments | « chrome/browser/signin/account_reconcilor_unittest.cc ('k') | chrome/test/base/uma_histogram_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698