diff --git a/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js b/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js index 4ba4d31e3a7..bb8e8b5bbc1 100644 --- a/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js +++ b/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js @@ -15,11 +15,16 @@ Cu.import("resource://gre/modules/LightweightThemeManager.jsm"); const PATH = "/submit/telemetry/test-ping"; const SERVER = "http://localhost:4444"; const IGNORE_HISTOGRAM = "test::ignore_me"; +const HISTOGRAM_FOR_STARTUP = "PAGE_FAULTS_HARD" +const CLONED_STARTUP_HISTOGRAM = "STARTUP_PAGE_FAULTS_HARD" +const IGNORE_HISTOGRAM_TO_CLONE = "MEMORY_HEAP_ALLOCATED" +const IGNORE_CLONED_HISTOGRAM = "test::ignore_me_also" const BinaryInputStream = Components.Constructor( "@mozilla.org/binaryinputstream;1", "nsIBinaryInputStream", "setInputStream"); +const Telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry); var httpserver = new nsHttpServer(); var gFinished = false; @@ -27,6 +32,7 @@ var gFinished = false; function telemetry_ping () { const TelemetryPing = Cc["@mozilla.org/base/telemetry-ping;1"].getService(Ci.nsIObserver); TelemetryPing.observe(null, "test-ping", SERVER); + TelemetryPing.observe(null, "sessionstore-windows-restored", null); } function nonexistentServerObserver(aSubject, aTopic, aData) { @@ -43,8 +49,9 @@ function nonexistentServerObserver(aSubject, aTopic, aData) { function telemetryObserver(aSubject, aTopic, aData) { Services.obs.removeObserver(telemetryObserver, aTopic); httpserver.registerPathHandler(PATH, checkHistograms); - const Telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry); Telemetry.newHistogram(IGNORE_HISTOGRAM, 1, 2, 3, Telemetry.HISTOGRAM_BOOLEAN); + Telemetry.histogramFrom(CLONED_STARTUP_HISTOGRAM, HISTOGRAM_FOR_STARTUP); + Telemetry.histogramFrom(IGNORE_CLONED_HISTOGRAM, IGNORE_HISTOGRAM_TO_CLONE); Services.startup.interrupted = true; telemetry_ping(); } @@ -77,7 +84,15 @@ function checkHistograms(request, response) { const TELEMETRY_PING = "TELEMETRY_PING"; const TELEMETRY_SUCCESS = "TELEMETRY_SUCCESS"; do_check_true(TELEMETRY_PING in payload.histograms); + do_check_true(CLONED_STARTUP_HISTOGRAM in payload.histograms); + let rh = Telemetry.registeredHistograms; + for (let name in rh) { + if (/SQLITE/.test(name) && name in payload.histograms) { + do_check_true(("STARTUP_" + name) in payload.histograms); + } + } do_check_false(IGNORE_HISTOGRAM in payload.histograms); + do_check_false(IGNORE_CLONED_HISTOGRAM in payload.histograms); // There should be one successful report from the previous telemetry ping. const expected_tc = {