test: fix test-net-persistent-keepalive for AIX
authorImran Iqbal <imrani@ca.ibm.com>
Tue, 3 Nov 2015 16:10:16 +0000 (11:10 -0500)
committerJames M Snell <jasnell@gmail.com>
Wed, 23 Dec 2015 16:38:33 +0000 (08:38 -0800)
Fixed an intermittent issue on AIX where the 600ms timeout was reached
before the 'connection' event was fired. This resulted in a failure as
serverConnection would be undefined and the assert.equal would throw an
error. Changed the flow of the test so that the timeout is only set
after a connection has been made.

PR-URL: https://github.com/nodejs/node/pull/3646
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
test/parallel/test-net-persistent-keepalive.js

index a54833a..fccfb69 100644 (file)
@@ -4,8 +4,17 @@ var assert = require('assert');
 var net = require('net');
 
 var serverConnection;
+var clientConnection;
 var echoServer = net.createServer(function(connection) {
   serverConnection = connection;
+  setTimeout(function() {
+    // make sure both connections are still open
+    assert.equal(serverConnection.readyState, 'open');
+    assert.equal(clientConnection.readyState, 'open');
+    serverConnection.end();
+    clientConnection.end();
+    echoServer.close();
+  }, 600);
   connection.setTimeout(0);
   assert.equal(typeof connection.setKeepAlive, 'function');
   connection.on('end', function() {
@@ -15,20 +24,11 @@ var echoServer = net.createServer(function(connection) {
 echoServer.listen(common.PORT);
 
 echoServer.on('listening', function() {
-  var clientConnection = new net.Socket();
+  clientConnection = new net.Socket();
   // send a keepalive packet after 1000 ms
   // and make sure it persists
   var s = clientConnection.setKeepAlive(true, 400);
   assert.ok(s instanceof net.Socket);
   clientConnection.connect(common.PORT);
   clientConnection.setTimeout(0);
-
-  setTimeout(function() {
-    // make sure both connections are still open
-    assert.equal(serverConnection.readyState, 'open');
-    assert.equal(clientConnection.readyState, 'open');
-    serverConnection.end();
-    clientConnection.end();
-    echoServer.close();
-  }, 600);
 });