net: use `_server` for internal book-keeping
[platform/upstream/nodejs.git] / test / parallel / test-net-stream.js
1 'use strict';
2 var common = require('../common');
3 var assert = require('assert');
4
5 var net = require('net');
6
7 var s = new net.Stream();
8
9 // test that destroy called on a stream with a server only ever decrements the
10 // server connection count once
11
12 s.server = new net.Server();
13 s.server.connections = 10;
14 s._server = s.server;
15
16 assert.equal(10, s.server.connections);
17 s.destroy();
18 assert.equal(9, s.server.connections);
19 s.destroy();
20 assert.equal(9, s.server.connections);
21
22 var SIZE = 2E6;
23 var N = 10;
24 var buf = new Buffer(SIZE);
25 buf.fill(0x61); // 'a'
26
27 var server = net.createServer(function(socket) {
28   socket.setNoDelay();
29
30   socket.on('error', function(err) {
31     socket.destroy();
32   }).on('close', function() {
33     server.close();
34   });
35
36   for (var i = 0; i < N; ++i) {
37     socket.write(buf, function() { });
38   }
39   socket.end();
40
41 }).listen(common.PORT, function() {
42   var conn = net.connect(common.PORT);
43   conn.on('data', function(buf) {
44     conn.pause();
45     setTimeout(function() {
46       conn.destroy();
47     }, 20);
48   });
49 });
50
51 process.on('exit', function() {
52   assert.equal(server.connections, 0);
53 });