1'use strict'; 2const common = require('../common'); 3const assert = require('assert'); 4const cp = require('child_process'); 5 6const CODE = ` 7 const { internalBinding } = require('internal/test/binding'); 8 const { isTraceCategoryEnabled } = internalBinding('trace_events'); 9 console.log( 10 isTraceCategoryEnabled("custom") 11 ); 12`; 13 14const tmpdir = require('../common/tmpdir'); 15tmpdir.refresh(); 16 17const procEnabled = cp.spawn( 18 process.execPath, 19 [ '--trace-event-categories', 'custom', 20 // Make test less noisy since internal/test/binding 21 // emits a warning. 22 '--no-warnings', 23 '--expose-internals', 24 '-e', CODE ], 25 { cwd: tmpdir.path } 26); 27let procEnabledOutput = ''; 28 29procEnabled.stdout.on('data', (data) => procEnabledOutput += data); 30procEnabled.stderr.pipe(process.stderr); 31procEnabled.once('close', common.mustCall(() => { 32 assert.strictEqual(procEnabledOutput, 'true\n'); 33})); 34 35const procDisabled = cp.spawn( 36 process.execPath, 37 [ '--trace-event-categories', 'other', 38 // Make test less noisy since internal/test/binding 39 // emits a warning. 40 '--no-warnings', 41 '--expose-internals', 42 '-e', CODE ], 43 { cwd: tmpdir.path } 44); 45let procDisabledOutput = ''; 46 47procDisabled.stdout.on('data', (data) => procDisabledOutput += data); 48procDisabled.stderr.pipe(process.stderr); 49procDisabled.once('close', common.mustCall(() => { 50 assert.strictEqual(procDisabledOutput, 'false\n'); 51})); 52