1'use strict'; 2const common = require('../common'); 3const Countdown = require('../common/countdown'); 4const cluster = require('cluster'); 5const net = require('net'); 6 7// Test an edge case when using `cluster` and `net.Server.listen()` to 8// the port of `0`. 9const kPort = 0; 10 11function child() { 12 const kTime = 2; 13 const countdown = new Countdown(kTime * 2, () => { 14 process.exit(0); 15 }); 16 for (let i = 0; i < kTime; i += 1) { 17 const server = net.createServer(); 18 server.listen(kPort, common.mustCall(() => { 19 server.close(countdown.dec()); 20 const server2 = net.createServer(); 21 server2.listen(kPort, common.mustCall(() => { 22 server2.close(countdown.dec()); 23 })); 24 })); 25 } 26} 27 28if (cluster.isMaster) 29 cluster.fork(__filename); 30else 31 child(); 32