test: don't call process.exit() in gc tests
Rewrite the tests in test/gc so that they no longer call process.exit(). Instead they exit gracefully now. PR-URL: https://github.com/nodejs/node/pull/11239 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
This commit is contained in:
parent
f8cdaaa16a
commit
da52fcdcf5
@ -10,7 +10,6 @@ function serverHandler(req, res) {
|
||||
|
||||
const http = require('http');
|
||||
const weak = require('weak');
|
||||
const assert = require('assert');
|
||||
const todo = 500;
|
||||
let done = 0;
|
||||
let count = 0;
|
||||
@ -28,7 +27,6 @@ function getall() {
|
||||
(function() {
|
||||
function cb(res) {
|
||||
done += 1;
|
||||
statusLater();
|
||||
}
|
||||
|
||||
const req = http.get({
|
||||
@ -51,20 +49,11 @@ function afterGC() {
|
||||
countGC++;
|
||||
}
|
||||
|
||||
let timer;
|
||||
function statusLater() {
|
||||
global.gc();
|
||||
if (timer) clearTimeout(timer);
|
||||
timer = setTimeout(status, 1);
|
||||
}
|
||||
setInterval(status, 100).unref();
|
||||
|
||||
function status() {
|
||||
global.gc();
|
||||
console.log('Done: %d/%d', done, todo);
|
||||
console.log('Collected: %d/%d', countGC, count);
|
||||
if (done === todo) {
|
||||
console.log('All should be collected now.');
|
||||
assert.strictEqual(count, countGC);
|
||||
process.exit(0);
|
||||
}
|
||||
if (countGC === todo) server.close();
|
||||
}
|
||||
|
@ -12,7 +12,6 @@ function serverHandler(req, res) {
|
||||
|
||||
const http = require('http');
|
||||
const weak = require('weak');
|
||||
const assert = require('assert');
|
||||
const todo = 500;
|
||||
let done = 0;
|
||||
let count = 0;
|
||||
@ -31,7 +30,6 @@ function getall() {
|
||||
function cb(res) {
|
||||
res.resume();
|
||||
done += 1;
|
||||
statusLater();
|
||||
}
|
||||
function onerror(er) {
|
||||
throw er;
|
||||
@ -59,20 +57,11 @@ function afterGC() {
|
||||
countGC++;
|
||||
}
|
||||
|
||||
let timer;
|
||||
function statusLater() {
|
||||
global.gc();
|
||||
if (timer) clearTimeout(timer);
|
||||
timer = setTimeout(status, 1);
|
||||
}
|
||||
setInterval(status, 100).unref();
|
||||
|
||||
function status() {
|
||||
global.gc();
|
||||
console.log('Done: %d/%d', done, todo);
|
||||
console.log('Collected: %d/%d', countGC, count);
|
||||
if (done === todo) {
|
||||
console.log('All should be collected now.');
|
||||
assert.strictEqual(count, countGC);
|
||||
process.exit(0);
|
||||
}
|
||||
if (countGC === todo) server.close();
|
||||
}
|
||||
|
@ -14,7 +14,6 @@ function serverHandler(req, res) {
|
||||
|
||||
const http = require('http');
|
||||
const weak = require('weak');
|
||||
const assert = require('assert');
|
||||
const todo = 550;
|
||||
let done = 0;
|
||||
let count = 0;
|
||||
@ -33,7 +32,6 @@ function getall() {
|
||||
function cb(res) {
|
||||
res.resume();
|
||||
done += 1;
|
||||
statusLater();
|
||||
}
|
||||
|
||||
const req = http.get({
|
||||
@ -60,20 +58,11 @@ function afterGC() {
|
||||
countGC++;
|
||||
}
|
||||
|
||||
let timer;
|
||||
function statusLater() {
|
||||
global.gc();
|
||||
if (timer) clearTimeout(timer);
|
||||
timer = setTimeout(status, 1);
|
||||
}
|
||||
setInterval(status, 100).unref();
|
||||
|
||||
function status() {
|
||||
global.gc();
|
||||
console.log('Done: %d/%d', done, todo);
|
||||
console.log('Collected: %d/%d', countGC, count);
|
||||
if (done === todo) {
|
||||
console.log('All should be collected now.');
|
||||
assert.strictEqual(count, countGC);
|
||||
process.exit(0);
|
||||
}
|
||||
if (countGC === todo) server.close();
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ function serverHandler(req, res) {
|
||||
|
||||
const http = require('http');
|
||||
const weak = require('weak');
|
||||
const assert = require('assert');
|
||||
const todo = 500;
|
||||
let done = 0;
|
||||
let count = 0;
|
||||
@ -54,15 +53,11 @@ function afterGC() {
|
||||
countGC++;
|
||||
}
|
||||
|
||||
setInterval(status, 1000).unref();
|
||||
setInterval(status, 100).unref();
|
||||
|
||||
function status() {
|
||||
global.gc();
|
||||
console.log('Done: %d/%d', done, todo);
|
||||
console.log('Collected: %d/%d', countGC, count);
|
||||
if (done === todo) {
|
||||
console.log('All should be collected now.');
|
||||
assert.strictEqual(count, countGC);
|
||||
process.exit(0);
|
||||
}
|
||||
if (countGC === todo) server.close();
|
||||
}
|
||||
|
@ -62,14 +62,5 @@ function status() {
|
||||
global.gc();
|
||||
console.log('Done: %d/%d', done, todo);
|
||||
console.log('Collected: %d/%d', countGC, count);
|
||||
if (done === todo) {
|
||||
/* Give libuv some time to make close callbacks. */
|
||||
setTimeout(function() {
|
||||
global.gc();
|
||||
console.log('All should be collected now.');
|
||||
console.log('Collected: %d/%d', countGC, count);
|
||||
assert.strictEqual(count, countGC);
|
||||
process.exit(0);
|
||||
}, 200);
|
||||
}
|
||||
if (countGC === todo) server.close();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user