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: https://github.com/nodejs/node/issues/2475 PR-URL: https://github.com/nodejs/node/pull/4109 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
This commit is contained in:
parent
816e66f0ec
commit
c79b145abc
@ -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
|
||||
|
@ -15,7 +15,7 @@ var serverRemotePorts = [];
|
||||
|
||||
const server = net.createServer(function(socket) {
|
||||
serverRemotePorts.push(socket.remotePort);
|
||||
conns++;
|
||||
testConnect();
|
||||
});
|
||||
|
||||
const client = new net.Socket();
|
||||
@ -29,7 +29,12 @@ server.on('close', common.mustCall(function() {
|
||||
server.listen(common.PORT, common.localhostIPv4, testConnect);
|
||||
|
||||
function testConnect() {
|
||||
if (conns == 2) {
|
||||
if (conns > serverRemotePorts.length || conns > clientLocalPorts.length) {
|
||||
// We're waiting for a callback to fire.
|
||||
return;
|
||||
}
|
||||
|
||||
if (conns === 2) {
|
||||
return server.close();
|
||||
}
|
||||
client.connect(common.PORT, common.localhostIPv4, function() {
|
||||
@ -37,4 +42,5 @@ function testConnect() {
|
||||
this.once('close', testConnect);
|
||||
this.destroy();
|
||||
});
|
||||
conns++;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user