node/test/parallel/test-trace-events-v8.js
Nikolaos Papaspyrou 3ba41246d2
test: update V8 trace events test expectations
The event "V8.GCScavenger" is soon to be deprecated. Most of V8
trace events are either behind flags and disabled by default, or
are emitted infrequently. Instead of replacing "V8.GCScavenger"
with some other random event, this patch updates the tests to
check that there is some event in the category "v8" whose name
starts with "V8.".

PR-URL: https://github.com/nodejs/node/pull/42120
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2022-03-01 12:41:32 +01:00

59 lines
1.7 KiB
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const cp = require('child_process');
const fs = require('fs');
const path = require('path');
const CODE =
'setTimeout(() => { for (let i = 0; i < 100000; i++) { "test" + i } }, 1)';
const tmpdir = require('../common/tmpdir');
tmpdir.refresh();
const FILE_NAME = path.join(tmpdir.path, 'node_trace.1.log');
const proc = cp.spawn(process.execPath,
[ '--trace-events-enabled',
'--trace-event-categories', 'v8',
'-e', CODE ],
{ cwd: tmpdir.path });
proc.once('exit', common.mustCall(() => {
assert(fs.existsSync(FILE_NAME));
fs.readFile(FILE_NAME, common.mustCall((err, data) => {
const traces = JSON.parse(data.toString()).traceEvents;
assert(traces.length > 0);
// V8 trace events should be generated.
assert(traces.some((trace) => {
if (trace.pid !== proc.pid)
return false;
if (trace.cat !== 'v8')
return false;
if (!trace.name.startsWith('V8.'))
return false;
return true;
}));
// C++ async_hooks trace events should be generated.
assert(!traces.some((trace) => {
if (trace.pid !== proc.pid)
return false;
if (trace.cat !== 'node.async_hooks')
return false;
return true;
}));
// JavaScript async_hooks trace events should be generated.
assert(!traces.some((trace) => {
if (trace.pid !== proc.pid)
return false;
if (trace.cat !== 'node.async_hooks')
return false;
if (trace.name !== 'Timeout')
return false;
return true;
}));
}));
}));