Index: base/test/histogram_tester.h |
diff --git a/base/test/histogram_tester.h b/base/test/histogram_tester.h |
index 96317f98d2d33283ed09a8d3e69487312af1dd38..7ac7ca67e7efac0db0f4d8fe1921b719c77aedef 100644 |
--- a/base/test/histogram_tester.h |
+++ b/base/test/histogram_tester.h |
@@ -6,7 +6,10 @@ |
#define BASE_TEST_HISTOGRAM_TESTER_H_ |
#include <map> |
+#include <ostream> |
#include <string> |
+#include <utility> |
+#include <vector> |
#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
@@ -15,6 +18,7 @@ |
namespace base { |
+struct Bucket; |
class HistogramSamples; |
// HistogramTester provides a simple interface for examining histograms, UMA |
@@ -47,6 +51,24 @@ class HistogramTester { |
void ExpectTotalCount(const std::string& name, |
base::HistogramBase::Count count) const; |
+ // Returns a list of all of the buckets recorded since creation of this |
+ // object, as vector<Bucket>, where the Bucket represents the min boundary of |
+ // the bucket and the count of samples recorded to that bucket since creation. |
+ // |
+ // Example usage, using gMock: |
+ // EXPECT_THAT(histogram_tester.GetAllSamples("HistogramName"), |
+ // ElementsAre(Bucket(1, 5), Bucket(2, 10), Bucket(3, 5))); |
+ // |
+ // If you build the expected list programmatically, you can use ContainerEq: |
+ // EXPECT_THAT(histogram_tester.GetAllSamples("HistogramName"), |
+ // ContainerEq(expected_buckets)); |
+ // |
+ // or EXPECT_EQ if you prefer not to depend on gMock, at the expense of a |
+ // slightly less helpful failure message: |
+ // EXPECT_EQ(expected_buckets, |
+ // histogram_tester.GetAllSamples("HistogramName")); |
+ std::vector<Bucket> GetAllSamples(const std::string& name); |
+ |
// Access a modified HistogramSamples containing only what has been logged |
// to the histogram since the creation of this object. |
scoped_ptr<HistogramSamples> GetHistogramSamplesSinceCreation( |
@@ -76,6 +98,18 @@ class HistogramTester { |
DISALLOW_COPY_AND_ASSIGN(HistogramTester); |
}; |
+struct Bucket { |
+ Bucket(base::HistogramBase::Sample min, base::HistogramBase::Count count) |
+ : min(min), count(count) {} |
+ |
+ bool operator==(const Bucket& other) const; |
+ |
+ base::HistogramBase::Sample min; |
+ base::HistogramBase::Count count; |
+}; |
+ |
+void PrintTo(const Bucket& value, std::ostream* os); |
+ |
} // namespace base |
#endif // BASE_TEST_HISTOGRAM_TESTER_H_ |