Bug 1377180: Pass PATH environment variables with partial environment on Windows. r?aswan draft
authorKris Maglione <maglione.k@gmail.com>
Thu, 29 Jun 2017 11:50:39 -0700
changeset 602173 6d6acb4cbee0a5cf5d5e45f879c6efb1f46819f2
parent 601497 7095cd0f91c7a11916e54161ce0dd3e1a2131e7b
child 635494 ead6274200ebf85554e2c179251e8dd8899697c9
push id66314
push usermaglione.k@gmail.com
push dateThu, 29 Jun 2017 18:52:33 +0000
reviewersaswan
bugs1377180
milestone56.0a1
Bug 1377180: Pass PATH environment variables with partial environment on Windows. r?aswan MozReview-Commit-ID: JwqvmHJpFcL
toolkit/modules/subprocess/test/xpcshell/test_subprocess.js
--- 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: {