| 'use strict'; |
| const common = require('../common'); |
| |
| common.skipIfInspectorDisabled(); |
| |
| const assert = require('assert'); |
| const { Session } = require('inspector'); |
| const { promisify } = require('util'); |
| |
| const sleep = promisify(setTimeout); |
| |
| async function test() { |
| const inspector = new Session(); |
| inspector.connect(); |
| |
| inspector.post('Profiler.enable'); |
| inspector.post('Profiler.start'); |
| |
| await sleep(1000); |
| |
| const { profile } = await new Promise((resolve, reject) => { |
| inspector.post('Profiler.stop', (err, params) => { |
| if (err) return reject(err); |
| resolve(params); |
| }); |
| }); |
| |
| let hasIdle = false; |
| for (const node of profile.nodes) { |
| if (node.callFrame.functionName === '(idle)') { |
| hasIdle = true; |
| break; |
| } |
| } |
| assert(hasIdle); |
| |
| inspector.post('Profiler.disable'); |
| inspector.disconnect(); |
| } |
| |
| test().then(common.mustCall(() => { |
| console.log('Done!'); |
| })); |