Skip to content

Commit

Permalink
test: add trace-gc flag test
Browse files Browse the repository at this point in the history
PR-URL: #42471
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
  • Loading branch information
tony-go authored and juanarbol committed May 31, 2022
1 parent ec5443c commit 90ecc9b
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
9 changes: 9 additions & 0 deletions test/fixtures/gc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
let arr = new Array(300_000).fill('a');

for (let index = 0; index < arr.length; index++) {
arr[index] = Math.random();
}

arr = [];
// .gc() is called to generate a Mark-sweep event
global.gc();
40 changes: 40 additions & 0 deletions test/v8-updates/test-trace-gc-flag.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
'use strict';

// This test verifies that `--trace-gc` flag is well integrated.
// We'll check here, that the console outputs gc events properly.
require('../common');

const assert = require('assert');
const { spawnSync } = require('child_process');

const fixtures = require('../common/fixtures');

{
const childProcess = spawnSync(process.execPath, [
'--trace-gc',
'--expose-gc',
fixtures.path('gc.js'),
]);
const output = childProcess.stdout.toString().trim();
const lines = splitByLine(output);

const scavengeRegex = /\bScavenge\b/;
const expectedOutput = [
scavengeRegex,
scavengeRegex,
scavengeRegex,
scavengeRegex,
/\bMark-sweep\b/,
];
lines.forEach((line, index) => {
assert.match(line, expectedOutput[index]);
});
}

/**
* HELPERS
*/

function splitByLine(str) {
return str.split(/\n/);
}

0 comments on commit 90ecc9b

Please sign in to comment.