test: fix failing due to too early timeout

This commit is contained in:
Shigeki Ohtsu 2012-09-25 15:00:01 +09:00 committed by Ben Noordhuis
parent 5691e8aca7
commit a1ba29d110

View File

@ -23,13 +23,15 @@ var common = require('../common');
var assert = require('assert'); var assert = require('assert');
var http = require('http'); var http = require('http');
var timeout = 15*1000;
var max_requests = 30;
var request_number = 0; var request_number = 0;
var requests_sent = 0; var requests_sent = 0;
var requests_done = 0; var requests_done = 0;
var options = { var options = {
method: 'GET', method: 'GET',
port: common.PORT, port: common.PORT,
host: '127.0.0.1', host: '127.0.0.1'
}; };
//http.globalAgent.maxSockets = 15; //http.globalAgent.maxSockets = 15;
@ -50,7 +52,9 @@ var server = http.createServer(function(req, res) {
server.listen(options.port, options.host, function() { server.listen(options.port, options.host, function() {
var req; var req;
for (requests_sent = 0; requests_sent < 30; requests_sent+=1) { for (requests_sent = 0; requests_sent < max_requests;
requests_sent++) {
options.path = '/' + requests_sent; options.path = '/' + requests_sent;
req = http.request(options); req = http.request(options);
req.id = requests_sent; req.id = requests_sent;
@ -60,7 +64,7 @@ server.listen(options.port, options.host, function() {
}); });
res.on('end', function(data) { res.on('end', function(data) {
console.log('res#'+this.req.id+' end'); console.log('res#'+this.req.id+' end');
requests_done += 1; if (++requests_done === max_requests) finish();
}); });
}); });
req.on('close', function() { req.on('close', function() {
@ -74,13 +78,18 @@ server.listen(options.port, options.host, function() {
var req = this; var req = this;
console.log('req#'+this.id + ' timeout'); console.log('req#'+this.id + ' timeout');
req.abort(); req.abort();
requests_done += 1; if (++requests_done === max_requests) finish();
}); });
req.end(); req.end();
} }
setTimeout(function() { var tid = setTimeout(function() {
finish();
}, timeout);
function finish() {
clearTimeout(tid);
server.close(); server.close();
}, 150); }
}); });
process.on('exit', function() { process.on('exit', function() {