diff options
author | Rich Trott <rtrott@gmail.com> | 2016-03-26 15:26:15 -0700 |
---|---|---|
committer | Myles Borins <mborins@us.ibm.com> | 2016-04-11 11:17:25 -0400 |
commit | d59be4d2484fde2285ffe202a9b0acbd7fcb90e2 (patch) | |
tree | d58c708d010e8393427d1dcc3d81e1d3bbb72945 | |
parent | 02401a6cbdfb29bb44f7c35f67bafdca3bbfa54a (diff) | |
download | nodejs-d59be4d2484fde2285ffe202a9b0acbd7fcb90e2.tar.gz nodejs-d59be4d2484fde2285ffe202a9b0acbd7fcb90e2.tar.bz2 nodejs-d59be4d2484fde2285ffe202a9b0acbd7fcb90e2.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>
-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 37ab4987e..67c6141c9 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; +})); |