test: harden test-gc-http-client

This reduces the total number of requests from 500 to 300 and triggers
more requests in parallel. It also moves some function creation out
and waits with the first request until the server is listening.

PR-URL: https://github.com/nodejs/node/pull/22373
Fixes: https://github.com/nodejs/node/issues/22336
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Ruben Bridgewater 2018-08-17 14:25:03 +02:00 committed by Joyee Cheung
parent 3479b1ca82
commit 79642ae071
No known key found for this signature in database
GPG Key ID: 92B78A53C8303B8D

View File

@ -10,7 +10,7 @@ function serverHandler(req, res) {
}
const http = require('http');
const todo = 500;
const todo = 300;
let done = 0;
let count = 0;
let countGC = 0;
@ -18,36 +18,32 @@ let countGC = 0;
console.log(`We should do ${todo} requests`);
const server = http.createServer(serverHandler);
server.listen(0, getall);
server.listen(0, common.mustCall(() => {
for (let i = 0; i < 15; i++)
getall();
}));
function getall() {
if (count >= todo)
if (count === todo)
return;
(function() {
function cb(res) {
res.resume();
console.error('in cb');
done += 1;
res.on('end', global.gc);
}
const req = http.get({
hostname: 'localhost',
pathname: '/',
port: server.address().port
}, cb);
const req = http.get({
hostname: 'localhost',
pathname: '/',
port: server.address().port
}, cb);
count++;
common.onGC(req, { ongc });
})();
count++;
common.onGC(req, { ongc });
setImmediate(getall);
}
for (let i = 0; i < 10; i++)
getall();
function cb(res) {
res.resume();
done += 1;
res.on('end', global.gc);
}
function ongc() {
countGC++;