blob: b29ae6ef808292dc551e8985eafeb44f544f2375 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
'use strict';
const common = require('../common');
const net = require('net');
const assert = require('assert');
let cbcount = 0;
const N = 500000;
const server = net.Server(function(socket) {
socket.on('data', function(d) {
console.error('got %d bytes', d.length);
});
socket.on('end', function() {
console.error('end');
socket.destroy();
server.close();
});
});
let lastCalled = -1;
function makeCallback(c) {
let called = false;
return function() {
if (called)
throw new Error('called callback #' + c + ' more than once');
called = true;
if (c < lastCalled)
throw new Error('callbacks out of order. last=' + lastCalled +
' current=' + c);
lastCalled = c;
cbcount++;
};
}
server.listen(common.PORT, function() {
const client = net.createConnection(common.PORT);
client.on('connect', function() {
for (let i = 0; i < N; i++) {
client.write('hello world', makeCallback(i));
}
client.end();
});
});
process.on('exit', function() {
assert.strictEqual(N, cbcount);
});
|