gecko-dev/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtask_minruntime.js
Jens Stutte b4d2bd2352 Bug 1832252 - Have a configurable minimum runtime for background tasks. r=nalexander
Background tasks are potentially very short living, such that things launched asynchronously during process startup might not have finished initializing when we are asked to shutdown.

In order to mitigate this, we introduce a configurable `backgroundTaskMinRuntimeMS` (default 500ms) that guarantees that a background task will last at least that time.

Documentation will be added in bug 1833198.

Differential Revision: https://phabricator.services.mozilla.com/D177879
2023-05-15 20:25:21 +00:00

21 lines
737 B
JavaScript

/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
* vim: sw=4 ts=4 sts=4 et
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
add_task(async function test_backgroundtask_minruntime() {
let startTime = new Date().getTime();
let exitCode = await do_backgroundtask("minruntime");
Assert.equal(0, exitCode);
let finishTime = new Date().getTime();
// minruntime sets backgroundTaskMinRuntimeMS = 2000;
// Have some tolerance for flaky timers.
Assert.ok(
finishTime - startTime > 1800,
"Runtime was at least 2 seconds (approximately)."
);
});