Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'android' OR ccov
- Manifest: toolkit/components/backgroundtasks/tests/xpcshell/xpcshell.toml
/* -*- 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
// Run a background task which itself waits for a launched background task,
// which itself waits for a launched background task, etc. Verify no output is
// produced.
add_task(async function test_backgroundtask_no_output() {
let sentinel = Services.uuid.generateUUID().toString();
sentinel = sentinel.substring(1, sentinel.length - 1);
let count = 2;
let outputLines = [];
let exitCode = await do_backgroundtask("no_output", {
extraArgs: [sentinel, count.toString()],
// This is a misnomer: stdout is redirected to stderr, so this is _any_
// output line.
onStdoutLine: line => outputLines.push(line),
});
Assert.equal(0, exitCode);
if (AppConstants.platform !== "win") {
// Check specific logs because there can still be some logs in certain conditions,
ok(
outputLines.every(l => !l.includes("*** You are running in")),
"Should not have logs by default"
);
}
});
// Run a background task which itself waits for a launched background task,
// which itself waits for a launched background task, etc. Since we ignore the
// no output restriction, verify that output is produced.
add_task(async function test_backgroundtask_ignore_no_output() {
let sentinel = Services.uuid.generateUUID().toString();
sentinel = sentinel.substring(1, sentinel.length - 1);
let count = 2;
let outputLines = [];
let exitCode = await do_backgroundtask("no_output", {
extraArgs: [sentinel, count.toString()],
extraEnv: { MOZ_BACKGROUNDTASKS_IGNORE_NO_OUTPUT: "1" },
// This is a misnomer: stdout is redirected to stderr, so this is _any_
// output line.
onStdoutLine: line => {
if (line.includes(sentinel)) {
outputLines.push(line);
}
},
});
Assert.equal(0, exitCode);
Assert.equal(count, outputLines.length);
});