Add helper macros for calling a histogram with different names.
To be used when a metric is used in different modes such as real-time vs screenshare (will be done in https://codereview.webrtc.org/1564923008/).
BUG=webrtc:5283
Review URL: https://codereview.webrtc.org/1567013004
Cr-Commit-Position: refs/heads/master@{#11461}
diff --git a/webrtc/system_wrappers/source/metrics_unittest.cc b/webrtc/system_wrappers/source/metrics_unittest.cc
index 8319b78..7de6f5e 100644
--- a/webrtc/system_wrappers/source/metrics_unittest.cc
+++ b/webrtc/system_wrappers/source/metrics_unittest.cc
@@ -21,6 +21,9 @@
void AddSparseSample(const std::string& name, int sample) {
RTC_HISTOGRAM_COUNTS_SPARSE_100(name, sample);
}
+void AddSampleWithVaryingName(int index, const std::string& name, int sample) {
+ RTC_HISTOGRAMS_COUNTS_100(index, name, sample);
+}
#if GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
void AddSample(const std::string& name, int sample) {
RTC_HISTOGRAM_COUNTS_100(name, sample);
@@ -72,6 +75,27 @@
EXPECT_EQ(kNumSamples - 1, test::LastHistogramSample(kName));
}
+TEST(MetricsTest, RtcHistogramsCounts_AddSample) {
+ test::ClearHistograms();
+ AddSampleWithVaryingName(0, "Name1", kSample);
+ AddSampleWithVaryingName(1, "Name2", kSample + 1);
+ AddSampleWithVaryingName(2, "Name3", kSample + 2);
+ EXPECT_EQ(1, test::NumHistogramSamples("Name1"));
+ EXPECT_EQ(1, test::NumHistogramSamples("Name2"));
+ EXPECT_EQ(1, test::NumHistogramSamples("Name3"));
+ EXPECT_EQ(kSample + 0, test::LastHistogramSample("Name1"));
+ EXPECT_EQ(kSample + 1, test::LastHistogramSample("Name2"));
+ EXPECT_EQ(kSample + 2, test::LastHistogramSample("Name3"));
+}
+
+#if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
+TEST(MetricsTest, RtcHistogramsCounts_InvalidIndex) {
+ EXPECT_DEATH(RTC_HISTOGRAMS_COUNTS_1000(-1, kName, kSample), "");
+ EXPECT_DEATH(RTC_HISTOGRAMS_COUNTS_1000(3, kName, kSample), "");
+ EXPECT_DEATH(RTC_HISTOGRAMS_COUNTS_1000(3u, kName, kSample), "");
+}
+#endif
+
TEST(MetricsTest, RtcHistogramSparse_NonConstantNameWorks) {
test::ClearHistograms();
AddSparseSample("Name1", kSample);