test: dynamic port in cluster disconnect
Removed common.PORT from test-cluster-disconnect to eliminate the possibility that a port used in another test will collide with common.PORT. PR-URL: https://github.com/nodejs/node/pull/12545 Refs: https://github.com/nodejs/node/issues/12376 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
This commit is contained in:
parent
54d331895c
commit
bee250c232
@ -28,14 +28,14 @@ const net = require('net');
|
|||||||
if (cluster.isWorker) {
|
if (cluster.isWorker) {
|
||||||
net.createServer((socket) => {
|
net.createServer((socket) => {
|
||||||
socket.end('echo');
|
socket.end('echo');
|
||||||
}).listen(common.PORT, '127.0.0.1');
|
}).listen(0, '127.0.0.1');
|
||||||
|
|
||||||
net.createServer((socket) => {
|
net.createServer((socket) => {
|
||||||
socket.end('echo');
|
socket.end('echo');
|
||||||
}).listen(common.PORT + 1, '127.0.0.1');
|
}).listen(0, '127.0.0.1');
|
||||||
|
|
||||||
} else if (cluster.isMaster) {
|
} else if (cluster.isMaster) {
|
||||||
const servers = 2;
|
const servers = 2;
|
||||||
|
const serverPorts = new Set();
|
||||||
|
|
||||||
// test a single TCP server
|
// test a single TCP server
|
||||||
const testConnection = (port, cb) => {
|
const testConnection = (port, cb) => {
|
||||||
@ -47,6 +47,7 @@ if (cluster.isWorker) {
|
|||||||
// check result
|
// check result
|
||||||
socket.on('end', common.mustCall(() => {
|
socket.on('end', common.mustCall(() => {
|
||||||
cb(result === 'echo');
|
cb(result === 'echo');
|
||||||
|
serverPorts.delete(port);
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -54,9 +55,10 @@ if (cluster.isWorker) {
|
|||||||
// test both servers created in the cluster
|
// test both servers created in the cluster
|
||||||
const testCluster = (cb) => {
|
const testCluster = (cb) => {
|
||||||
let done = 0;
|
let done = 0;
|
||||||
|
const portsArray = Array.from(serverPorts);
|
||||||
|
|
||||||
for (let i = 0; i < servers; i++) {
|
for (let i = 0; i < servers; i++) {
|
||||||
testConnection(common.PORT + i, (success) => {
|
testConnection(portsArray[i], (success) => {
|
||||||
assert.ok(success);
|
assert.ok(success);
|
||||||
done += 1;
|
done += 1;
|
||||||
if (done === servers) {
|
if (done === servers) {
|
||||||
@ -72,7 +74,9 @@ if (cluster.isWorker) {
|
|||||||
let online = 0;
|
let online = 0;
|
||||||
|
|
||||||
for (let i = 0, l = workers; i < l; i++) {
|
for (let i = 0, l = workers; i < l; i++) {
|
||||||
cluster.fork().on('listening', common.mustCall(() => {
|
cluster.fork().on('listening', common.mustCall((address) => {
|
||||||
|
serverPorts.add(address.port);
|
||||||
|
|
||||||
online += 1;
|
online += 1;
|
||||||
if (online === workers * servers) {
|
if (online === workers * servers) {
|
||||||
cb();
|
cb();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user