Skip to content

Commit

Permalink
test: fix net-socket-timeout-unref flakiness
Browse files Browse the repository at this point in the history
From time to time this test is failing in OS X because at least one of
the connections takes quite a long time (around 5 seconds) causing some
of the timers may fire before the test exited. To solve this, wait for
all the connections to be established before setting the timeouts and
unrefing the sockets.
  • Loading branch information
santigimeno committed Feb 3, 2016
1 parent 4501a28 commit 3e67429
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions test/parallel/test-net-socket-timeout-unref.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,26 @@ server.listen(common.PORT);
server.unref();

var timedout = false;
var connections = 0;
var sockets = [];
var delays = [8, 5, 3, 6, 2, 4];

[8, 5, 3, 6, 2, 4].forEach(function(T) {
delays.forEach(function(T) {
var socket = net.createConnection(common.PORT, 'localhost');
socket.setTimeout(T * 1000, function() {
console.log(process._getActiveHandles());
timedout = true;
socket.destroy();
socket.on('connect', function() {
if (++connections === delays.length) {
sockets.forEach(function(s) {
s[0].setTimeout(s[1] * 1000, function() {
timedout = true;
s[0].destroy();
});

s[0].unref();
});
}
});
socket.unref();

sockets.push([socket, T]);
});

process.on('exit', function() {
Expand Down

0 comments on commit 3e67429

Please sign in to comment.