1 var common = require('../common');
2 var assert = require('assert');
4 // verify that stdout is never read from.
5 var net = require('net');
6 var read = net.Socket.prototype.read;
8 net.Socket.prototype.read = function() {
10 throw new Error('reading from stdout!');
12 throw new Error('reading from stderr!');
13 return read.apply(this, arguments);
16 if (process.argv[2] === 'child')
22 var spawn = require('child_process').spawn;
23 var node = process.execPath;
26 var c1 = spawn(node, [__filename, 'child']);
28 c1.stdout.setEncoding('utf8');
29 c1.stdout.on('data', function(chunk) {
32 c1.stderr.setEncoding('utf8');
33 c1.stderr.on('data', function(chunk) {
34 console.error('c1err: ' + chunk.split('\n').join('\nc1err: '));
36 c1.on('close', function(code, signal) {
40 assert.equal(c1out, 'ok\n');
44 var c2 = spawn(node, ['-e', 'console.log("ok")']);
46 c2.stdout.setEncoding('utf8');
47 c2.stdout.on('data', function(chunk) {
50 c1.stderr.setEncoding('utf8');
51 c1.stderr.on('data', function(chunk) {
52 console.error('c1err: ' + chunk.split('\n').join('\nc1err: '));
54 c2.on('close', function(code, signal) {
58 assert.equal(c2out, 'ok\n');
62 process.on('exit', function() {
63 assert.equal(closes, 2, 'saw both closes');
68 // should not be reading *ever* in here.
69 net.Socket.prototype.read = function() {
70 throw new Error('no reading allowed in child');