11cb0ef41Sopenharmony_ci'use strict'; 21cb0ef41Sopenharmony_ciconst common = require('../common'); 31cb0ef41Sopenharmony_ciconst assert = require('assert'); 41cb0ef41Sopenharmony_ciconst cp = require('child_process'); 51cb0ef41Sopenharmony_ciconst fs = require('fs'); 61cb0ef41Sopenharmony_ciconst path = require('path'); 71cb0ef41Sopenharmony_ciconst tmpdir = require('../common/tmpdir'); 81cb0ef41Sopenharmony_ci 91cb0ef41Sopenharmony_ciconst names = [ 101cb0ef41Sopenharmony_ci 'environment', 111cb0ef41Sopenharmony_ci 'nodeStart', 121cb0ef41Sopenharmony_ci 'v8Start', 131cb0ef41Sopenharmony_ci 'loopStart', 141cb0ef41Sopenharmony_ci 'loopExit', 151cb0ef41Sopenharmony_ci 'bootstrapComplete', 161cb0ef41Sopenharmony_ci]; 171cb0ef41Sopenharmony_ci 181cb0ef41Sopenharmony_ciif (process.argv[2] === 'child') { 191cb0ef41Sopenharmony_ci 1 + 1; // eslint-disable-line no-unused-expressions 201cb0ef41Sopenharmony_ci} else { 211cb0ef41Sopenharmony_ci tmpdir.refresh(); 221cb0ef41Sopenharmony_ci 231cb0ef41Sopenharmony_ci const proc = cp.fork(__filename, 241cb0ef41Sopenharmony_ci [ 'child' ], { 251cb0ef41Sopenharmony_ci cwd: tmpdir.path, 261cb0ef41Sopenharmony_ci execArgv: [ 271cb0ef41Sopenharmony_ci '--trace-event-categories', 281cb0ef41Sopenharmony_ci 'node.bootstrap', 291cb0ef41Sopenharmony_ci ] 301cb0ef41Sopenharmony_ci }); 311cb0ef41Sopenharmony_ci 321cb0ef41Sopenharmony_ci proc.once('exit', common.mustCall(() => { 331cb0ef41Sopenharmony_ci const file = path.join(tmpdir.path, 'node_trace.1.log'); 341cb0ef41Sopenharmony_ci 351cb0ef41Sopenharmony_ci assert(fs.existsSync(file)); 361cb0ef41Sopenharmony_ci fs.readFile(file, common.mustCall((err, data) => { 371cb0ef41Sopenharmony_ci const traces = JSON.parse(data.toString()).traceEvents 381cb0ef41Sopenharmony_ci .filter((trace) => trace.cat !== '__metadata'); 391cb0ef41Sopenharmony_ci traces.forEach((trace) => { 401cb0ef41Sopenharmony_ci assert.strictEqual(trace.pid, proc.pid); 411cb0ef41Sopenharmony_ci assert(names.includes(trace.name)); 421cb0ef41Sopenharmony_ci }); 431cb0ef41Sopenharmony_ci })); 441cb0ef41Sopenharmony_ci })); 451cb0ef41Sopenharmony_ci} 46