Skip to content

Commit

Permalink
test: improve test-net-server-pause-on-connect
Browse files Browse the repository at this point in the history
Previously the test had a massive timeout (3s!), reduce this to a
platform specific timeout of 50ms.

This test runs two servers at the same time in an attempt to compare
behaviour. I've added a check to make sure one event fires before the
other event, as is expected, but that is a possible race condition.

Improves test run time on my machine from 0m3.141s to 0m0.356s.

PR-URL: #2429
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
brendanashworth committed Aug 20, 2015
1 parent 04722d1 commit 2052941
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion test/parallel/test-net-server-pause-on-connect.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,22 @@ var server1 = net.createServer({pauseOnConnect: true}, function(socket) {
});

setTimeout(function() {
// After 50(ish) ms, the other socket should have already read the data.
assert.equal(read, true);
assert.equal(socket.bytesRead, 0, 'no data should have been read yet');

socket.resume();
stopped = false;
}, 3000);
}, common.platformTimeout(50));
});

// read is a timing check, as server1's timer should fire after server2's
// connection receives the data. Note that this could be race-y.
var read = false;
var server2 = net.createServer({pauseOnConnect: false}, function(socket) {
socket.on('data', function(data) {
read = true;

assert.equal(data.toString(), msg, 'invalid data received');
socket.end();
server2.close();
Expand All @@ -37,3 +45,8 @@ server1.listen(common.PORT, function() {
server2.listen(common.PORT + 1, function() {
net.createConnection({port: common.PORT + 1}).write(msg);
});

process.on('exit', function() {
assert.equal(stopped, false);
assert.equal(read, true);
});

0 comments on commit 2052941

Please sign in to comment.