test: fix flaky test-http-agent-keepalive
authorRich Trott <rtrott@gmail.com>
Mon, 4 Jan 2016 02:53:27 +0000 (18:53 -0800)
committerMyles Borins <mborins@us.ibm.com>
Tue, 19 Jan 2016 19:52:36 +0000 (11:52 -0800)
Remove timeout delay causing flakiness on SmartOS.

Fixes: https://github.com/nodejs/node/issues/4492
PR-URL: https://github.com/nodejs/node/pull/4524
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <r@va.gg>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
test/parallel/test-http-agent-keepalive.js

index ef9553c..8e80b00 100644 (file)
@@ -1,27 +1,27 @@
 'use strict';
-var common = require('../common');
-var assert = require('assert');
-var http = require('http');
-var Agent = require('_http_agent').Agent;
-var EventEmitter = require('events').EventEmitter;
+const common = require('../common');
+const assert = require('assert');
+const http = require('http');
+const Agent = require('_http_agent').Agent;
+const EventEmitter = require('events').EventEmitter;
 
-var agent = new Agent({
+const agent = new Agent({
   keepAlive: true,
   keepAliveMsecs: 1000,
   maxSockets: 5,
   maxFreeSockets: 5
 });
 
-var server = http.createServer(function(req, res) {
+const server = http.createServer(function(req, res) {
   if (req.url === '/error') {
     res.destroy();
     return;
   } else if (req.url === '/remote_close') {
-    // cache the socket, close it after 100ms
-    var socket = res.connection;
-    setTimeout(function() {
+    // cache the socket, close it after a short delay
+    const socket = res.connection;
+    setImmediate(function() {
       socket.end();
-    }, 100);
+    });
   }
   res.end('hello world');
 });
@@ -35,7 +35,7 @@ function get(path, callback) {
   }, callback);
 }
 
-var name = 'localhost:' + common.PORT + ':';
+const name = 'localhost:' + common.PORT + ':';
 
 function checkDataAndSockets(body) {
   assert.equal(body.toString(), 'hello world');
@@ -77,7 +77,7 @@ function remoteClose() {
           assert.equal(agent.freeSockets[name], undefined,
             'freeSockets is not empty');
           remoteError();
-        }, 200);
+        }, common.platformTimeout(200));
       });
     });
   });
@@ -85,7 +85,7 @@ function remoteClose() {
 
 function remoteError() {
   // remove server will destroy ths socket
-  var req = get('/error', function(res) {
+  const req = get('/error', function(res) {
     throw new Error('should not call this function');
   });
   req.on('error', function(err) {
@@ -98,7 +98,7 @@ function remoteError() {
       assert.equal(agent.sockets[name], undefined);
       assert.equal(agent.freeSockets[name], undefined);
       done();
-    }, 1);
+    }, common.platformTimeout(1));
   });
 }