1'use strict'; 2const common = require('../common'); 3const assert = require('assert'); 4const cp = require('child_process'); 5const fs = require('fs'); 6const { isMainThread } = require('worker_threads'); 7 8if (isMainThread) { 9 const CODE = 'const { Worker } = require(\'worker_threads\'); ' + 10 `new Worker('${__filename.replace(/\\/g, '/')}')`; 11 const FILE_NAME = 'node_trace.1.log'; 12 const tmpdir = require('../common/tmpdir'); 13 tmpdir.refresh(); 14 process.chdir(tmpdir.path); 15 16 const proc = cp.spawn(process.execPath, 17 [ '--trace-event-categories', 'node', 18 '-e', CODE ]); 19 proc.once('exit', common.mustCall(() => { 20 assert(fs.existsSync(FILE_NAME)); 21 fs.readFile(FILE_NAME, common.mustCall((err, data) => { 22 const traces = JSON.parse(data.toString()).traceEvents; 23 assert(traces.length > 0); 24 assert(traces.some((trace) => 25 trace.cat === '__metadata' && trace.name === 'thread_name' && 26 trace.args.name === '[worker 1]')); 27 })); 28 })); 29} else { 30 // Do nothing here. 31} 32