Remove excessive copyright/license boilerplate
[platform/upstream/nodejs.git] / test / sequential / test-stdout-stderr-reading.js
1 var common = require('../common');
2 var assert = require('assert');
3
4 // verify that stdout is never read from.
5 var net = require('net');
6 var read = net.Socket.prototype.read;
7
8 net.Socket.prototype.read = function() {
9   if (this.fd === 1)
10     throw new Error('reading from stdout!');
11   if (this.fd === 2)
12     throw new Error('reading from stderr!');
13   return read.apply(this, arguments);
14 };
15
16 if (process.argv[2] === 'child')
17   child();
18 else
19   parent();
20
21 function parent() {
22   var spawn = require('child_process').spawn;
23   var node = process.execPath;
24   var closes = 0;
25
26   var c1 = spawn(node, [__filename, 'child']);
27   var c1out = '';
28   c1.stdout.setEncoding('utf8');
29   c1.stdout.on('data', function(chunk) {
30     c1out += chunk;
31   });
32   c1.stderr.setEncoding('utf8');
33   c1.stderr.on('data', function(chunk) {
34     console.error('c1err: ' + chunk.split('\n').join('\nc1err: '));
35   });
36   c1.on('close', function(code, signal) {
37     closes++;
38     assert(!code);
39     assert(!signal);
40     assert.equal(c1out, 'ok\n');
41     console.log('ok');
42   });
43
44   var c2 = spawn(node, ['-e', 'console.log("ok")']);
45   var c2out = '';
46   c2.stdout.setEncoding('utf8');
47   c2.stdout.on('data', function(chunk) {
48     c2out += chunk;
49   });
50   c1.stderr.setEncoding('utf8');
51   c1.stderr.on('data', function(chunk) {
52     console.error('c1err: ' + chunk.split('\n').join('\nc1err: '));
53   });
54   c2.on('close', function(code, signal) {
55     closes++;
56     assert(!code);
57     assert(!signal);
58     assert.equal(c2out, 'ok\n');
59     console.log('ok');
60   });
61
62   process.on('exit', function() {
63     assert.equal(closes, 2, 'saw both closes');
64   });
65 }
66
67 function child() {
68   // should not be reading *ever* in here.
69   net.Socket.prototype.read = function() {
70     throw new Error('no reading allowed in child');
71   };
72   console.log('ok');
73 }