diff options
author | Santiago Gimeno <santiago.gimeno@gmail.com> | 2016-04-09 18:47:50 +0200 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2016-04-20 09:14:33 -0700 |
commit | 2dc5ad460a8bc014a47ca25c73a8f343ef296d27 (patch) | |
tree | d81d9b69b3a73ce9ba430e3a51128ec3db168047 /test/parallel/test-stdout-stderr-reading.js | |
parent | 54dd7c38e507b35ee0ffadc41a716f1782b0d32f (diff) | |
download | android-node-v8-2dc5ad460a8bc014a47ca25c73a8f343ef296d27.tar.gz android-node-v8-2dc5ad460a8bc014a47ca25c73a8f343ef296d27.tar.bz2 android-node-v8-2dc5ad460a8bc014a47ca25c73a8f343ef296d27.zip |
test: move more tests from sequential to parallel
Only `test-stdin-from-file.js` has been modified so that the `stdin.txt`
is written in a temp directory instead of the `fixtures` directory.
PR-URL: https://github.com/nodejs/node/pull/6187
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-stdout-stderr-reading.js')
-rw-r--r-- | test/parallel/test-stdout-stderr-reading.js | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/test/parallel/test-stdout-stderr-reading.js b/test/parallel/test-stdout-stderr-reading.js new file mode 100644 index 0000000000..2cc029c501 --- /dev/null +++ b/test/parallel/test-stdout-stderr-reading.js @@ -0,0 +1,74 @@ +'use strict'; +require('../common'); +var assert = require('assert'); + +// verify that stdout is never read from. +var net = require('net'); +var read = net.Socket.prototype.read; + +net.Socket.prototype.read = function() { + if (this.fd === 1) + throw new Error('reading from stdout!'); + if (this.fd === 2) + throw new Error('reading from stderr!'); + return read.apply(this, arguments); +}; + +if (process.argv[2] === 'child') + child(); +else + parent(); + +function parent() { + var spawn = require('child_process').spawn; + var node = process.execPath; + var closes = 0; + + var c1 = spawn(node, [__filename, 'child']); + var c1out = ''; + c1.stdout.setEncoding('utf8'); + c1.stdout.on('data', function(chunk) { + c1out += chunk; + }); + c1.stderr.setEncoding('utf8'); + c1.stderr.on('data', function(chunk) { + console.error('c1err: ' + chunk.split('\n').join('\nc1err: ')); + }); + c1.on('close', function(code, signal) { + closes++; + assert(!code); + assert(!signal); + assert.equal(c1out, 'ok\n'); + console.log('ok'); + }); + + var c2 = spawn(node, ['-e', 'console.log("ok")']); + var c2out = ''; + c2.stdout.setEncoding('utf8'); + c2.stdout.on('data', function(chunk) { + c2out += chunk; + }); + c1.stderr.setEncoding('utf8'); + c1.stderr.on('data', function(chunk) { + console.error('c1err: ' + chunk.split('\n').join('\nc1err: ')); + }); + c2.on('close', function(code, signal) { + closes++; + assert(!code); + assert(!signal); + assert.equal(c2out, 'ok\n'); + console.log('ok'); + }); + + process.on('exit', function() { + assert.equal(closes, 2, 'saw both closes'); + }); +} + +function child() { + // should not be reading *ever* in here. + net.Socket.prototype.read = function() { + throw new Error('no reading allowed in child'); + }; + console.log('ok'); +} |