diff -r 000000000000 -r 6474c204b198 toolkit/components/telemetry/tests/unit/test_nsITelemetry.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolkit/components/telemetry/tests/unit/test_nsITelemetry.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,388 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +const Cc = Components.classes; +const Ci = Components.interfaces; +const Cu = Components.utils; +const INT_MAX = 0x7FFFFFFF; + +const Telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry); +Cu.import("resource://gre/modules/Services.jsm", this); + +function test_expired_histogram() { + var histogram_id = "FOOBAR"; + var test_expired_id = "TELEMETRY_TEST_EXPIRED"; + var clone_id = "ExpiredClone"; + var dummy = Telemetry.newHistogram(histogram_id, "28.0a1", 1, 2, 3, Telemetry.HISTOGRAM_EXPONENTIAL); + var dummy_clone = Telemetry.histogramFrom(clone_id, test_expired_id); + var rh = Telemetry.registeredHistograms([]); + + dummy.add(1); + dummy_clone.add(1); + + do_check_eq(Telemetry.histogramSnapshots["__expired__"], undefined); + do_check_eq(Telemetry.histogramSnapshots[histogram_id], undefined); + do_check_eq(Telemetry.histogramSnapshots[test_expired_id], undefined); + do_check_eq(Telemetry.histogramSnapshots[clone_id], undefined); + do_check_eq(rh[test_expired_id], undefined); +} + +function test_histogram(histogram_type, name, min, max, bucket_count) { + var h = Telemetry.newHistogram(name, "never", min, max, bucket_count, histogram_type); + var r = h.snapshot().ranges; + var sum = 0; + var log_sum = 0; + var log_sum_squares = 0; + for(var i=0;i