bug 1440673 - Test that dynamic events are summarized to a dynamic scalar r?Dexter
MozReview-Commit-ID: 6n1MFFIes5j
--- a/toolkit/components/telemetry/tests/gtest/TestScalars.cpp
+++ b/toolkit/components/telemetry/tests/gtest/TestScalars.cpp
@@ -291,8 +291,28 @@ TEST_F(TelemetryTestFixture, ScalarEvent
#ifndef DEBUG
TelemetryScalar::SummarizeEvent(nsCString("whoops#too#many"), ProcessID::Parent, false /* aDynamic */);
GetScalarsSnapshot(true, cx.GetJSContext(), &scalarsSnapshot);
CheckNumberOfProperties(kScalarName, cx.GetJSContext(), scalarsSnapshot, 500);
#endif // #ifndef DEBUG
}
+
+TEST_F(TelemetryTestFixture, ScalarEventSummary_Dynamic) {
+ AutoJSContextWithGlobal cx(mCleanGlobal);
+
+ // Make sure we don't get scalars from other tests.
+ Unused << mTelemetry->ClearScalars();
+
+ const char* kScalarName = "telemetry.dynamic_event_counts";
+ const char* kLongestEvent = "oohwowlookthiscategoryissolong#thismethodislongtooo#thisobjectisnoslouch";
+ TelemetryScalar::SummarizeEvent(nsCString(kLongestEvent), ProcessID::Parent, true /* aDynamic */);
+ TelemetryScalar::SummarizeEvent(nsCString(kLongestEvent), ProcessID::Content, true /* aDynamic */);
+
+ // Check the recorded value.
+ JS::RootedValue scalarsSnapshot(cx.GetJSContext());
+ GetScalarsSnapshot(true, cx.GetJSContext(), &scalarsSnapshot, ProcessID::Dynamic);
+
+ // Recording in parent or content doesn't matter for dynamic scalars
+ // which all end up in the same place.
+ CheckKeyedUintScalar(kScalarName, kLongestEvent, cx.GetJSContext(), scalarsSnapshot, 2);
+}