From 910a859b9c9d1d33611a003291b85228ddf6e5d1 Mon Sep 17 00:00:00 2001 From: Ali Farhadi Date: Tue, 25 Jan 2011 19:33:21 +0330 Subject: [PATCH] Adding test for many keep-alive connections --- .../test-http-many-keep-alive-connections.js | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 test/simple/test-http-many-keep-alive-connections.js diff --git a/test/simple/test-http-many-keep-alive-connections.js b/test/simple/test-http-many-keep-alive-connections.js new file mode 100644 index 0000000000..9cbda2bda5 --- /dev/null +++ b/test/simple/test-http-many-keep-alive-connections.js @@ -0,0 +1,50 @@ +var common = require('../common'); +var assert = require('assert'); +var http = require('http'); + +var expected = 10000; +var responses = 0; +var requests = 0; +var connection; + +var server = http.Server(function(req, res) { + requests++; + assert.equal(req.connection, connection); + res.writeHead(200); + res.end("hello world\n"); +}); + +server.once('connection', function(c) { + connection = c; +}); + +server.listen(common.PORT, function() { + var callee = arguments.callee; + var request = http.get({ + port: common.PORT, + path: '/', + headers: { + 'Connection': 'Keep-alive' + } + }, function(res) { + res.on('end', function() { + if (++responses < expected) { + callee(); + } else { + request.agent.sockets.forEach(function(socket) { + socket.end(); + }); + server.close(); + } + }); + }).on('error', function(e) { + console.log(e.message); + process.exit(1); + }); + request.agent.maxSockets = 1; +}); + +process.on('exit', function() { + assert.equal(expected, responses); + assert.equal(expected, requests); +});