Browse Source
test: dynamic port in parallel cluster tests
Removed common.PORT from test-cluster-message,
test-cluster-server-restart-none, test-cluster-server-restart-rr
and test-cluster-shared-handle-bind-error to eliminate the
possibility that a dynamic port used in another test will collide
with common.PORT.
PR-URL: https://github.com/nodejs/node/pull/12584
Ref: https://github.com/nodejs/node/issues/12376
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
v6.x
Sebastian Plesciuc
8 years ago
committed by
Myles Borins
No known key found for this signature in database
GPG Key ID: 933B01F40B5CA946
4 changed files with
12 additions and
11 deletions
test/parallel/test-cluster-message.js
test/parallel/test-cluster-server-restart-none.js
test/parallel/test-cluster-server-restart-rr.js
test/parallel/test-cluster-shared-handle-bind-error.js
@ -1,5 +1,5 @@
'use strict' ;
const common = require ( '../common' ) ;
require ( '../common' ) ;
const assert = require ( 'assert' ) ;
const cluster = require ( 'cluster' ) ;
const net = require ( 'net' ) ;
@ -39,7 +39,7 @@ if (cluster.isWorker) {
maybeReply ( ) ;
} ) ;
server . listen ( common . PORT , '127.0.0.1' ) ;
server . listen ( 0 , '127.0.0.1' ) ;
} else if ( cluster . isMaster ) {
const checks = {
@ -88,9 +88,9 @@ if (cluster.isWorker) {
} ) ;
// When a TCP server is listening in the worker connect to it
worker . on ( 'listening' , function ( ) {
worker . on ( 'listening' , function ( address ) {
client = net . connect ( common . PORT , function ( ) {
client = net . connect ( address . port , function ( ) {
// Send message to worker.
worker . send ( 'message from master' ) ;
} ) ;
@ -23,10 +23,10 @@ if (cluster.isMaster) {
} else {
const net = require ( 'net' ) ;
const server = net . createServer ( ) ;
server . listen ( common . PORT , common . mustCall ( ( ) => {
server . listen ( 0 , common . mustCall ( ( ) => {
if ( cluster . worker . id === 2 ) {
server . close ( ( ) => {
server . listen ( common . PORT , common . mustCall ( ( ) => {
server . listen ( 0 , common . mustCall ( ( ) => {
server . close ( ( ) => {
process . disconnect ( ) ;
} ) ;
@ -23,10 +23,10 @@ if (cluster.isMaster) {
} else {
const net = require ( 'net' ) ;
const server = net . createServer ( ) ;
server . listen ( common . PORT , common . mustCall ( ( ) => {
server . listen ( 0 , common . mustCall ( ( ) => {
if ( cluster . worker . id === 2 ) {
server . close ( ( ) => {
server . listen ( common . PORT , common . mustCall ( ( ) => {
server . listen ( 0 , common . mustCall ( ( ) => {
server . close ( ( ) => {
process . disconnect ( ) ;
} ) ;
@ -10,16 +10,17 @@ if (cluster.isMaster) {
// Hog the TCP port so that when the worker tries to bind, it'll fail.
const server = net . createServer ( common . mustNotCall ( ) ) ;
server . listen ( common . PORT , common . mustCall ( ( ) => {
const worker = cluster . fork ( ) ;
server . listen ( 0 , common . mustCall ( ( ) => {
const worker = cluster . fork ( { PORT : server . address ( ) . port } ) ;
worker . on ( 'exit' , common . mustCall ( ( exitCode ) => {
assert . strictEqual ( exitCode , 0 ) ;
server . close ( ) ;
} ) ) ;
} ) ) ;
} else {
assert ( process . env . PORT ) ;
const s = net . createServer ( common . mustNotCall ( ) ) ;
s . listen ( common . PORT , common . mustNotCall ( 'listen should have failed' ) ) ;
s . listen ( process . env . PORT , common . mustNotCall ( 'listen should have failed' ) ) ;
s . on ( 'error' , common . mustCall ( ( err ) => {
assert . strictEqual ( err . code , 'EADDRINUSE' ) ;
process . disconnect ( ) ;