mirror of
https://github.com/nodejs/node.git
synced 2024-11-30 07:27:22 +01:00
b4258bba11
A new version of ESLint flags chained properties on multiple lines that were not flagged by the previous version of ESLint. In preparation for turning that feature on, adjust alignment to that expected by the linter. This change happened to be predominantly around assertions using `assert()` and `assert.equal()`. These were changed to `assert.strictEqual()` where possible. PR-URL: https://github.com/nodejs/node/pull/7920 Reviewed-By: Michaël Zasso <mic.besace@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
91 lines
2.4 KiB
JavaScript
91 lines
2.4 KiB
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
var assert = require('assert');
|
|
|
|
var net = require('net');
|
|
|
|
// Sets the server's maxConnections property to 1.
|
|
// Open 2 connections (connection 0 and connection 1).
|
|
// Connection 0 should be accepted.
|
|
// Connection 1 should be rejected.
|
|
// Closes connection 0.
|
|
// Open 2 more connections (connection 2 and 3).
|
|
// Connection 2 should be accepted.
|
|
// Connection 3 should be rejected.
|
|
|
|
var connections = [];
|
|
var received = [];
|
|
var sent = [];
|
|
|
|
var createConnection = function(index) {
|
|
console.error('creating connection ' + index);
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
var connection = net.createConnection(server.address().port, function() {
|
|
var msg = '' + index;
|
|
console.error('sending message: ' + msg);
|
|
this.write(msg);
|
|
sent.push(msg);
|
|
});
|
|
|
|
connection.on('error', function(err) {
|
|
assert.equal(err.code, 'ECONNRESET');
|
|
resolve();
|
|
});
|
|
|
|
connection.on('data', function(e) {
|
|
console.error('connection ' + index + ' received response');
|
|
resolve();
|
|
});
|
|
|
|
connection.on('end', function() {
|
|
console.error('ending ' + index);
|
|
resolve();
|
|
});
|
|
|
|
connections[index] = connection;
|
|
});
|
|
};
|
|
|
|
var closeConnection = function(index) {
|
|
console.error('closing connection ' + index);
|
|
return new Promise(function(resolve, reject) {
|
|
connections[index].on('end', function() {
|
|
resolve();
|
|
});
|
|
connections[index].end();
|
|
});
|
|
};
|
|
|
|
var server = net.createServer(function(socket) {
|
|
socket.on('data', function(data) {
|
|
console.error('received message: ' + data);
|
|
received.push('' + data);
|
|
socket.write('acknowledged');
|
|
});
|
|
});
|
|
|
|
server.maxConnections = 1;
|
|
|
|
server.listen(0, function() {
|
|
createConnection(0)
|
|
.then(createConnection.bind(null, 1))
|
|
.then(closeConnection.bind(null, 0))
|
|
.then(createConnection.bind(null, 2))
|
|
.then(createConnection.bind(null, 3))
|
|
.then(server.close.bind(server))
|
|
.then(closeConnection.bind(null, 2));
|
|
});
|
|
|
|
process.on('exit', function() {
|
|
// Confirm that all connections tried to send data...
|
|
assert.deepStrictEqual(sent, ['0', '1', '2', '3']);
|
|
// ...but that only connections 0 and 2 were successful.
|
|
assert.deepStrictEqual(received, ['0', '2']);
|
|
});
|
|
|
|
process.on('unhandledRejection', function() {
|
|
console.error('promise rejected');
|
|
common.fail('A promise in the chain rejected');
|
|
});
|