michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: const Cc = Components.classes; michael@0: const Ci = Components.interfaces; michael@0: const Cu = Components.utils; michael@0: const INT_MAX = 0x7FFFFFFF; michael@0: michael@0: const Telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry); michael@0: Cu.import("resource://gre/modules/Services.jsm", this); michael@0: michael@0: function test_expired_histogram() { michael@0: var histogram_id = "FOOBAR"; michael@0: var test_expired_id = "TELEMETRY_TEST_EXPIRED"; michael@0: var clone_id = "ExpiredClone"; michael@0: var dummy = Telemetry.newHistogram(histogram_id, "28.0a1", 1, 2, 3, Telemetry.HISTOGRAM_EXPONENTIAL); michael@0: var dummy_clone = Telemetry.histogramFrom(clone_id, test_expired_id); michael@0: var rh = Telemetry.registeredHistograms([]); michael@0: michael@0: dummy.add(1); michael@0: dummy_clone.add(1); michael@0: michael@0: do_check_eq(Telemetry.histogramSnapshots["__expired__"], undefined); michael@0: do_check_eq(Telemetry.histogramSnapshots[histogram_id], undefined); michael@0: do_check_eq(Telemetry.histogramSnapshots[test_expired_id], undefined); michael@0: do_check_eq(Telemetry.histogramSnapshots[clone_id], undefined); michael@0: do_check_eq(rh[test_expired_id], undefined); michael@0: } michael@0: michael@0: function test_histogram(histogram_type, name, min, max, bucket_count) { michael@0: var h = Telemetry.newHistogram(name, "never", min, max, bucket_count, histogram_type); michael@0: var r = h.snapshot().ranges; michael@0: var sum = 0; michael@0: var log_sum = 0; michael@0: var log_sum_squares = 0; michael@0: for(var i=0;i