summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuigi Pinca <luigipinca@gmail.com>2022-01-20 20:18:20 +0100
committerLuigi Pinca <luigipinca@gmail.com>2022-01-23 21:26:51 +0100
commit7ce8403ef1a68ecb300dad6f2ebe37137a3086ca (patch)
tree44c40374399fca302f79a0e9b88a4ff34e8a9507
parenta8afe26fca2d3a7c374f86834525084e10ddc1a1 (diff)
downloadnode-new-master.tar.gz
test: simplify test-gc-http-clientmaster
Instead of sending a fixed number of requests, detect when GC has started and stop sending requests at that point. PR-URL: https://github.com/nodejs/node/pull/41620 Refs: https://github.com/nodejs/node/commit/47ecf2060343 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
-rw-r--r--test/sequential/test-gc-http-client.js34
1 files changed, 21 insertions, 13 deletions
diff --git a/test/sequential/test-gc-http-client.js b/test/sequential/test-gc-http-client.js
index 2eea09652a..7b9f9865ea 100644
--- a/test/sequential/test-gc-http-client.js
+++ b/test/sequential/test-gc-http-client.js
@@ -5,27 +5,27 @@
const common = require('../common');
const onGC = require('../common/ongc');
+const cpus = require('os').cpus().length;
+
function serverHandler(req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
}
const http = require('http');
-const todo = 300;
+let createClients = true;
let done = 0;
let count = 0;
let countGC = 0;
-console.log(`We should do ${todo} requests`);
-
const server = http.createServer(serverHandler);
server.listen(0, common.mustCall(() => {
- for (let i = 0; i < 15; i++)
- getall();
+ for (let i = 0; i < cpus; i++)
+ getAll();
}));
-function getall() {
- if (count === todo)
+function getAll() {
+ if (!createClients)
return;
const req = http.get({
@@ -37,7 +37,7 @@ function getall() {
count++;
onGC(req, { ongc });
- setImmediate(getall);
+ setImmediate(getAll);
}
function cb(res) {
@@ -49,11 +49,19 @@ function ongc() {
countGC++;
}
-setInterval(status, 100).unref();
+setImmediate(status);
function status() {
- global.gc();
- console.log('Done: %d/%d', done, todo);
- console.log('Collected: %d/%d', countGC, count);
- if (countGC === todo) server.close();
+ if (done > 0) {
+ createClients = false;
+ global.gc();
+ console.log(`done/collected/total: ${done}/${countGC}/${count}`);
+ if (countGC === count) {
+ server.close();
+ } else {
+ setImmediate(status);
+ }
+ } else {
+ setImmediate(status);
+ }
}