From b60e690023d00e4fda13f6df909b22ce5bcb032e Mon Sep 17 00:00:00 2001 From: Brendan Ashworth Date: Tue, 18 Aug 2015 11:36:20 -0700 Subject: [PATCH] test: improve test-net-server-pause-on-connect 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: https://github.com/nodejs/node/pull/2429 Reviewed-By: Rich Trott --- test/parallel/test-net-server-pause-on-connect.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/test/parallel/test-net-server-pause-on-connect.js b/test/parallel/test-net-server-pause-on-connect.js index db57114302f490..3f54ecea3c6fd2 100644 --- a/test/parallel/test-net-server-pause-on-connect.js +++ b/test/parallel/test-net-server-pause-on-connect.js @@ -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(); @@ -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); +});