Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
test: fix flaky test-net-socket-local-address
test-net-socket-local-address had a race condition that resulted in
unreliability on FreeBSD and Windows. This changes fixes the issue.

Fixes: #2475
  • Loading branch information
Trott committed Dec 1, 2015
commit 6dbc8a876a82cef2d4a5944ef71fd9faf12b2a0b
1 change: 0 additions & 1 deletion test/parallel/parallel.status
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,3 @@ test-child-process-exit-code : PASS,FLAKY
[$system==solaris] # Also applies to SmartOS

[$system==freebsd]
test-net-socket-local-address : PASS,FLAKY
19 changes: 12 additions & 7 deletions test/parallel/test-net-socket-local-address.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ var serverRemotePorts = [];

const server = net.createServer(function(socket) {
serverRemotePorts.push(socket.remotePort);
conns++;
testConnect();
});

const client = new net.Socket();
Expand All @@ -29,12 +29,17 @@ server.on('close', common.mustCall(function() {
server.listen(common.PORT, common.localhostIPv4, testConnect);

function testConnect() {
if (conns == 2) {
if (conns === 2) {
return server.close();
}
client.connect(common.PORT, common.localhostIPv4, function() {
clientLocalPorts.push(this.localPort);
this.once('close', testConnect);
this.destroy();
});
// conns === clientLocalPorts.length means both server and client callbacks
// have fired
if (conns === clientLocalPorts.length) {
client.connect(common.PORT, common.localhostIPv4, function() {
clientLocalPorts.push(this.localPort);
this.once('close', testConnect);
this.destroy();
});
}
conns++;
}