• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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