test: fix http-many-ended-pipelines flakiness

It can happen that the HTTP connection is closed before the server has received
all the requests, thus the server close condition is never reached. To solve
this, close the server when the socket is fully closed.

PR-URL: https://github.com/nodejs/node/pull/4041
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
This commit is contained in:
Santiago Gimeno 2015-11-26 22:34:11 +01:00 committed by Evan Lucas
parent 84dea1bd0c
commit 23e7703c85

View File

@ -13,15 +13,19 @@ var http = require('http');
var net = require('net'); var net = require('net');
var numRequests = 20; var numRequests = 20;
var done = 0; var first = false;
var server = http.createServer(function(req, res) { var server = http.createServer(function(req, res) {
res.end('ok'); if (!first) {
first = true;
req.socket.on('close', function() {
server.close();
});
}
res.end('ok');
// Oh no! The connection died! // Oh no! The connection died!
req.socket.destroy(); req.socket.destroy();
if (++done == numRequests)
server.close();
}); });
server.listen(common.PORT); server.listen(common.PORT);