diff options
author | Rich Trott <rtrott@gmail.com> | 2016-03-26 15:26:15 -0700 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2016-03-31 20:09:20 -0700 |
commit | a20c70029075cab18e4ff4d27dfd95b7eda2b268 (patch) | |
tree | 3918e33c531c86ebfefdc0eb0c21c73b062dfaf9 /test | |
parent | 05510211a642b6a4a0923e47ef983b18e3e2c95c (diff) | |
download | android-node-v8-a20c70029075cab18e4ff4d27dfd95b7eda2b268.tar.gz android-node-v8-a20c70029075cab18e4ff4d27dfd95b7eda2b268.tar.bz2 android-node-v8-a20c70029075cab18e4ff4d27dfd95b7eda2b268.zip |
test: ensure _handle property existence
`test-stdtout-close-unref.js` will fail if `process.stdin._handle` does
not exist. On UNIX-like operating systems, you can see this failure this
way:
./node test/parallel/test-stdout-close-unref.js < /dev/null
This issue has been experienced by @bengl and @drewfish in a Docker
container. I'm not sure why they are experiencing it in their
environment, but since it is possible that the `_handle` property does
not exist, let's use `child_process.spawn()` to make sure it exists.
PR-URL: https://github.com/nodejs/node/pull/5916
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-stdout-close-unref.js | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/test/parallel/test-stdout-close-unref.js b/test/parallel/test-stdout-close-unref.js index 37ab4987ee..67c6141c96 100644 --- a/test/parallel/test-stdout-close-unref.js +++ b/test/parallel/test-stdout-close-unref.js @@ -1,16 +1,30 @@ 'use strict'; -require('../common'); -var assert = require('assert'); +const common = require('../common'); +const assert = require('assert'); +const spawn = require('child_process').spawn; -var errs = 0; +if (process.argv[2] === 'child') { + var errs = 0; -process.stdin.resume(); -process.stdin._handle.close(); -process.stdin._handle.unref(); // Should not segfault. -process.stdin.on('error', function(err) { - errs++; -}); + process.stdin.resume(); + process.stdin._handle.close(); + process.stdin._handle.unref(); // Should not segfault. + process.stdin.on('error', function(err) { + errs++; + }); -process.on('exit', function() { - assert.strictEqual(errs, 1); -}); + process.on('exit', function() { + assert.strictEqual(errs, 1); + }); + return; +} + +// Use spawn so that we can be sure that stdin has a _handle property. +// Refs: https://github.com/nodejs/node/pull/5916 +const proc = spawn(process.execPath, [__filename, 'child'], { stdio: 'pipe' }); + +proc.stderr.pipe(process.stderr); +proc.on('exit', common.mustCall(function(exitCode) { + if (exitCode !== 0) + process.exitCode = exitCode; +})); |