From e64ee2b3f7b4067101b0291f1add842353cd6865 Mon Sep 17 00:00:00 2001 From: Julien Gilli Date: Fri, 19 Dec 2014 19:20:39 -0800 Subject: [PATCH] tests: append instead of override environment Some tests that rely on some environment variables being passed to child processes would fail because they reset the child processes' environement instead of appending to it. This would break on test environments where some custom environment variables are needed to make node work properly. Reviewed-By: Colin Ihrig Reviewed-by: Trevor Norris --- test/simple/test-child-process-spawnsync-env.js | 3 ++- test/simple/test-fs-readfile-error.js | 3 ++- test/simple/test-net-GH-5504.js | 5 +++-- test/simple/test-stdin-script-child.js | 5 +++-- test/simple/test-util-debug.js | 3 ++- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/test/simple/test-child-process-spawnsync-env.js b/test/simple/test-child-process-spawnsync-env.js index 0cde9ffeef..194be8f2fe 100644 --- a/test/simple/test-child-process-spawnsync-env.js +++ b/test/simple/test-child-process-spawnsync-env.js @@ -22,13 +22,14 @@ var common = require('../common'); var assert = require('assert'); var cp = require('child_process'); +var util = require('util'); if (process.argv[2] === 'child') { console.log(process.env.foo); } else { var expected = 'bar'; var child = cp.spawnSync(process.execPath, [__filename, 'child'], { - env: {foo: expected} + env: util._extend(process.env, {foo: expected}) }); assert.equal(child.stdout.toString().trim(), expected); diff --git a/test/simple/test-fs-readfile-error.js b/test/simple/test-fs-readfile-error.js index 72e1e2e7fb..67034cd87d 100644 --- a/test/simple/test-fs-readfile-error.js +++ b/test/simple/test-fs-readfile-error.js @@ -23,13 +23,14 @@ var common = require('../common'); var assert = require('assert'); var exec = require('child_process').exec; var path = require('path'); +var util = require('util'); var callbacks = 0; function test(env, cb) { var filename = path.join(common.fixturesDir, 'test-fs-readfile-error.js'); var execPath = process.execPath + ' ' + filename; - var options = { env: env || {} }; + var options = { env: util._extend(process.env, env || {}) }; exec(execPath, options, function(err, stdout, stderr) { assert(err); assert.equal(stdout, ''); diff --git a/test/simple/test-net-GH-5504.js b/test/simple/test-net-GH-5504.js index 0e87c8210e..e135581e21 100644 --- a/test/simple/test-net-GH-5504.js +++ b/test/simple/test-net-GH-5504.js @@ -21,6 +21,7 @@ var common = require('../common'); var assert = require('assert'); +var util = require('util'); // this test only fails with CentOS 6.3 using kernel version 2.6.32 // On other linuxes and darwin, the `read` call gets an ECONNRESET in @@ -74,10 +75,10 @@ function parent() { var clientExited = false; var serverListened = false; var opt = { - env: { + env: util._extend(process.env, { NODE_DEBUG: 'net', NODE_COMMON_PORT: process.env.NODE_COMMON_PORT, - } + }) }; process.on('exit', function() { diff --git a/test/simple/test-stdin-script-child.js b/test/simple/test-stdin-script-child.js index e940c3c3f3..50af591a4e 100644 --- a/test/simple/test-stdin-script-child.js +++ b/test/simple/test-stdin-script-child.js @@ -21,12 +21,13 @@ var common = require('../common'); var assert = require('assert'); +var util = require('util'); var spawn = require('child_process').spawn; var child = spawn(process.execPath, [], { - env: { + env: util._extend(process.env, { NODE_DEBUG: process.argv[2] - } + }) }); var wanted = child.pid + '\n'; var found = ''; diff --git a/test/simple/test-util-debug.js b/test/simple/test-util-debug.js index 6d9c28a95a..896e46f2c0 100644 --- a/test/simple/test-util-debug.js +++ b/test/simple/test-util-debug.js @@ -21,6 +21,7 @@ var common = require('../common'); var assert = require('assert'); +var util = require('util'); if (process.argv[2] === 'child') child(); @@ -47,7 +48,7 @@ function test(environ, shouldWrite) { var spawn = require('child_process').spawn; var child = spawn(process.execPath, [__filename, 'child'], { - env: { NODE_DEBUG: environ } + env: util._extend(process.env, { NODE_DEBUG: environ }) }); expectErr = expectErr.split('%PID%').join(child.pid);