Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLuigi Pinca <luigipinca@gmail.com>2022-04-19 16:36:57 +0300
committerMichaƫl Zasso <targos@protonmail.com>2022-05-02 15:39:33 +0300
commitfbda87d96669faccb81f4d9e3017f10fdd1524fe (patch)
tree96a234c1bb5b390d73c3cc59189acb056949e4cd /test
parent4af0fbd41ea344868c75f4c7c3eece40e664e9ef (diff)
test: simplify test-gc-{http-client,net}-*
Instead of sending/creating a fixed number of requests/connections, detect when GC has started and stop sending requests/creating connections at that point. Refs: https://github.com/nodejs/node/commit/47ecf2060343 Refs: https://github.com/nodejs/node/commit/7ce8403ef1a6 PR-URL: https://github.com/nodejs/node/pull/42782 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-gc-http-client-connaborted.js35
-rw-r--r--test/parallel/test-gc-http-client-timeout.js41
-rw-r--r--test/parallel/test-gc-net-timeout.js39
3 files changed, 67 insertions, 48 deletions
diff --git a/test/parallel/test-gc-http-client-connaborted.js b/test/parallel/test-gc-http-client-connaborted.js
index fa6bf20c176..fd276d30e2b 100644
--- a/test/parallel/test-gc-http-client-connaborted.js
+++ b/test/parallel/test-gc-http-client-connaborted.js
@@ -5,27 +5,27 @@
const common = require('../common');
const onGC = require('../common/ongc');
-
const http = require('http');
-const todo = 500;
+const os = require('os');
+
+const cpus = os.cpus().length;
+let createClients = true;
let done = 0;
let count = 0;
let countGC = 0;
-console.log(`We should do ${todo} requests`);
-
function serverHandler(req, res) {
res.connection.destroy();
}
const server = http.createServer(serverHandler);
server.listen(0, common.mustCall(() => {
- for (let i = 0; i < 10; 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) {
@@ -48,11 +48,18 @@ 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();
+ return;
+ }
+ }
+
+ setImmediate(status);
}
diff --git a/test/parallel/test-gc-http-client-timeout.js b/test/parallel/test-gc-http-client-timeout.js
index 359f890dc39..3ac410a6111 100644
--- a/test/parallel/test-gc-http-client-timeout.js
+++ b/test/parallel/test-gc-http-client-timeout.js
@@ -5,6 +5,8 @@
const common = require('../common');
const onGC = require('../common/ongc');
+const http = require('http');
+const os = require('os');
function serverHandler(req, res) {
setTimeout(function() {
@@ -14,19 +16,17 @@ function serverHandler(req, res) {
}, 100);
}
-const http = require('http');
-const todo = 300;
+const cpus = os.cpus().length;
+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(getall));
+server.listen(0, common.mustCall(getAll));
-function getall() {
- if (count >= todo)
+function getAll() {
+ if (!createClients)
return;
const req = http.get({
@@ -35,18 +35,16 @@ function getall() {
port: server.address().port
}, cb);
- req.setTimeout(10, function() {
- console.log('timeout (expected)');
- });
+ req.setTimeout(10, common.mustCall());
count++;
onGC(req, { ongc });
- setImmediate(getall);
+ setImmediate(getAll);
}
-for (let i = 0; i < 10; i++)
- getall();
+for (let i = 0; i < cpus; i++)
+ getAll();
function cb(res) {
res.resume();
@@ -57,11 +55,18 @@ 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();
+ return;
+ }
+ }
+
+ setImmediate(status);
}
diff --git a/test/parallel/test-gc-net-timeout.js b/test/parallel/test-gc-net-timeout.js
index 9ba6d2bc174..6b9d51c98d0 100644
--- a/test/parallel/test-gc-net-timeout.js
+++ b/test/parallel/test-gc-net-timeout.js
@@ -5,6 +5,9 @@
require('../common');
const onGC = require('../common/ongc');
+const assert = require('assert');
+const net = require('net');
+const os = require('os');
function serverHandler(sock) {
sock.setTimeout(120000);
@@ -23,20 +26,17 @@ function serverHandler(sock) {
}, 100);
}
-const net = require('net');
-const assert = require('assert');
-const todo = 500;
+const cpus = os.cpus().length;
+let createClients = true;
let done = 0;
let count = 0;
let countGC = 0;
-console.log(`We should do ${todo} requests`);
-
const server = net.createServer(serverHandler);
-server.listen(0, getall);
+server.listen(0, getAll);
-function getall() {
- if (count >= todo)
+function getAll() {
+ if (!createClients)
return;
const req = net.connect(server.address().port);
@@ -49,21 +49,28 @@ function getall() {
count++;
onGC(req, { ongc });
- setImmediate(getall);
+ setImmediate(getAll);
}
-for (let i = 0; i < 10; i++)
- getall();
+for (let i = 0; i < cpus; i++)
+ getAll();
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();
+ return;
+ }
+ }
+
+ setImmediate(status);
}