@@ -7,14 +7,14 @@ const net = require('net');
7
7
if ( cluster . isWorker ) {
8
8
net . createServer ( ( socket ) => {
9
9
socket . end ( 'echo' ) ;
10
- } ) . listen ( common . PORT , '127.0.0.1' ) ;
10
+ } ) . listen ( 0 , '127.0.0.1' ) ;
11
11
12
12
net . createServer ( ( socket ) => {
13
13
socket . end ( 'echo' ) ;
14
- } ) . listen ( common . PORT + 1 , '127.0.0.1' ) ;
15
-
14
+ } ) . listen ( 0 , '127.0.0.1' ) ;
16
15
} else if ( cluster . isMaster ) {
17
16
const servers = 2 ;
17
+ const serverPorts = new Set ( ) ;
18
18
19
19
// test a single TCP server
20
20
const testConnection = ( port , cb ) => {
@@ -26,16 +26,18 @@ if (cluster.isWorker) {
26
26
// check result
27
27
socket . on ( 'end' , common . mustCall ( ( ) => {
28
28
cb ( result === 'echo' ) ;
29
+ serverPorts . delete ( port ) ;
29
30
} ) ) ;
30
31
} ) ;
31
32
} ;
32
33
33
34
// test both servers created in the cluster
34
35
const testCluster = ( cb ) => {
35
36
let done = 0 ;
37
+ const portsArray = Array . from ( serverPorts ) ;
36
38
37
39
for ( let i = 0 ; i < servers ; i ++ ) {
38
- testConnection ( common . PORT + i , ( success ) => {
40
+ testConnection ( portsArray [ i ] , ( success ) => {
39
41
assert . ok ( success ) ;
40
42
done += 1 ;
41
43
if ( done === servers ) {
@@ -51,7 +53,9 @@ if (cluster.isWorker) {
51
53
let online = 0 ;
52
54
53
55
for ( let i = 0 , l = workers ; i < l ; i ++ ) {
54
- cluster . fork ( ) . on ( 'listening' , common . mustCall ( ( ) => {
56
+ cluster . fork ( ) . on ( 'listening' , common . mustCall ( ( address ) => {
57
+ serverPorts . add ( address . port ) ;
58
+
55
59
online += 1 ;
56
60
if ( online === workers * servers ) {
57
61
cb ( ) ;
0 commit comments