1'use strict'; 2const common = require('../common'); 3 4common.skipIfInspectorDisabled(); 5 6const assert = require('assert'); 7const { Session } = require('inspector'); 8const { promisify } = require('util'); 9 10const sleep = promisify(setTimeout); 11 12async function test() { 13 const inspector = new Session(); 14 inspector.connect(); 15 16 inspector.post('Profiler.enable'); 17 inspector.post('Profiler.start'); 18 19 await sleep(1000); 20 21 const { profile } = await new Promise((resolve, reject) => { 22 inspector.post('Profiler.stop', (err, params) => { 23 if (err) return reject(err); 24 resolve(params); 25 }); 26 }); 27 28 let hasIdle = false; 29 for (const node of profile.nodes) { 30 if (node.callFrame.functionName === '(idle)') { 31 hasIdle = true; 32 break; 33 } 34 } 35 assert(hasIdle); 36 37 inspector.post('Profiler.disable'); 38 inspector.disconnect(); 39} 40 41test().then(common.mustCall(() => { 42 console.log('Done!'); 43})); 44