diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /toolkit/components/osfile/tests/xpcshell/test_telemetry.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'toolkit/components/osfile/tests/xpcshell/test_telemetry.js')
-rw-r--r-- | toolkit/components/osfile/tests/xpcshell/test_telemetry.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/toolkit/components/osfile/tests/xpcshell/test_telemetry.js b/toolkit/components/osfile/tests/xpcshell/test_telemetry.js new file mode 100644 index 000000000..dc5104443 --- /dev/null +++ b/toolkit/components/osfile/tests/xpcshell/test_telemetry.js @@ -0,0 +1,63 @@ +"use strict"; + +var {OS: {File, Path, Constants}} = Components.utils.import("resource://gre/modules/osfile.jsm", {}); +var {Services} = Components.utils.import("resource://gre/modules/Services.jsm", {}); + +// Ensure that we have a profile but that the OS.File worker is not launched +add_task(function* init() { + do_get_profile(); + yield File.resetWorker(); +}); + +function getCount(histogram) { + if (histogram == null) { + return 0; + } + + let total = 0; + for (let i of histogram.counts) { + total += i; + } + return total; +} + +// Ensure that launching the OS.File worker adds data to the relevant +// histograms +add_task(function* test_startup() { + let LAUNCH = "OSFILE_WORKER_LAUNCH_MS"; + let READY = "OSFILE_WORKER_READY_MS"; + + let before = Services.telemetry.histogramSnapshots; + + // Launch the OS.File worker + yield File.getCurrentDirectory(); + + let after = Services.telemetry.histogramSnapshots; + + + do_print("Ensuring that we have recorded measures for histograms"); + do_check_eq(getCount(after[LAUNCH]), getCount(before[LAUNCH]) + 1); + do_check_eq(getCount(after[READY]), getCount(before[READY]) + 1); + + do_print("Ensuring that launh <= ready"); + do_check_true(after[LAUNCH].sum <= after[READY].sum); +}); + +// Ensure that calling writeAtomic adds data to the relevant histograms +add_task(function* test_writeAtomic() { + let LABEL = "OSFILE_WRITEATOMIC_JANK_MS"; + + let before = Services.telemetry.histogramSnapshots; + + // Perform a write. + let path = Path.join(Constants.Path.profileDir, "test_osfile_telemetry.tmp"); + yield File.writeAtomic(path, LABEL, { tmpPath: path + ".tmp" } ); + + let after = Services.telemetry.histogramSnapshots; + + do_check_eq(getCount(after[LABEL]), getCount(before[LABEL]) + 1); +}); + +function run_test() { + run_next_test(); +} |