@@ -28,14 +28,14 @@ const net = require('net');
28
28
if ( cluster . isWorker ) {
29
29
net . createServer ( ( socket ) => {
30
30
socket . end ( 'echo' ) ;
31
- } ) . listen ( common . PORT , '127.0.0.1' ) ;
31
+ } ) . listen ( 0 , '127.0.0.1' ) ;
32
32
33
33
net . createServer ( ( socket ) => {
34
34
socket . end ( 'echo' ) ;
35
- } ) . listen ( common . PORT + 1 , '127.0.0.1' ) ;
36
-
35
+ } ) . listen ( 0 , '127.0.0.1' ) ;
37
36
} else if ( cluster . isMaster ) {
38
37
const servers = 2 ;
38
+ const serverPorts = new Set ( ) ;
39
39
40
40
// test a single TCP server
41
41
const testConnection = ( port , cb ) => {
@@ -47,16 +47,18 @@ if (cluster.isWorker) {
47
47
// check result
48
48
socket . on ( 'end' , common . mustCall ( ( ) => {
49
49
cb ( result === 'echo' ) ;
50
+ serverPorts . delete ( port ) ;
50
51
} ) ) ;
51
52
} ) ;
52
53
} ;
53
54
54
55
// test both servers created in the cluster
55
56
const testCluster = ( cb ) => {
56
57
let done = 0 ;
58
+ const portsArray = Array . from ( serverPorts ) ;
57
59
58
60
for ( let i = 0 ; i < servers ; i ++ ) {
59
- testConnection ( common . PORT + i , ( success ) => {
61
+ testConnection ( portsArray [ i ] , ( success ) => {
60
62
assert . ok ( success ) ;
61
63
done += 1 ;
62
64
if ( done === servers ) {
@@ -72,7 +74,9 @@ if (cluster.isWorker) {
72
74
let online = 0 ;
73
75
74
76
for ( let i = 0 , l = workers ; i < l ; i ++ ) {
75
- cluster . fork ( ) . on ( 'listening' , common . mustCall ( ( ) => {
77
+ cluster . fork ( ) . on ( 'listening' , common . mustCall ( ( address ) => {
78
+ serverPorts . add ( address . port ) ;
79
+
76
80
online += 1 ;
77
81
if ( online === workers * servers ) {
78
82
cb ( ) ;
0 commit comments