Bug 1377180: Pass PATH environment variables with partial environment on Windows. r?aswan
MozReview-Commit-ID: JwqvmHJpFcL
--- a/toolkit/modules/subprocess/test/xpcshell/test_subprocess.js
+++ b/toolkit/modules/subprocess/test/xpcshell/test_subprocess.js
@@ -653,38 +653,48 @@ add_task(async function test_subprocess_
}
let {exitCode} = await proc.wait();
equal(exitCode, 0, "Got expected exit code");
});
-// Windows XP can't handle launching Python with a partial environment.
-if (!AppConstants.isPlatformAndVersionAtMost("win", "5.2")) {
- add_task(async function test_subprocess_environment() {
- let proc = await Subprocess.call({
- command: PYTHON,
- arguments: ["-u", TEST_SCRIPT, "env", "PATH", "FOO"],
- environment: {
- FOO: "BAR",
- },
+add_task(async function test_subprocess_environment() {
+ let environment = {
+ FOO: "BAR",
+ };
+
+ // Our Windows environment can't handle launching python without
+ // PATH variables.
+ if (AppConstants.platform == "win") {
+ Object.assign(environment, {
+ PATH: env.get("PATH"),
+ PATHEXT: env.get("PATHEXT"),
});
+ }
+
+ env.set("BAR", "BAZ");
- let path = await read(proc.stdout);
- let foo = await read(proc.stdout);
-
- equal(path, "", "Got expected $PATH value");
- equal(foo, "BAR", "Got expected $FOO value");
+ let proc = await Subprocess.call({
+ command: PYTHON,
+ arguments: ["-u", TEST_SCRIPT, "env", "FOO", "BAR"],
+ environment,
+ });
- let {exitCode} = await proc.wait();
+ let foo = await read(proc.stdout);
+ let bar = await read(proc.stdout);
- equal(exitCode, 0, "Got expected exit code");
- });
-}
+ equal(foo, "BAR", "Got expected $FOO value");
+ equal(bar, "", "Got expected $BAR value");
+
+ let {exitCode} = await proc.wait();
+
+ equal(exitCode, 0, "Got expected exit code");
+});
add_task(async function test_subprocess_environmentAppend() {
let proc = await Subprocess.call({
command: PYTHON,
arguments: ["-u", TEST_SCRIPT, "env", "PATH", "FOO"],
environmentAppend: true,
environment: {