• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2const common = require('../common');
3
4common.skipIfInspectorDisabled();
5
6const fixtures = require('../common/fixtures');
7const startCLI = require('../common/debugger');
8
9const assert = require('assert');
10const fs = require('fs');
11const path = require('path');
12
13const cli = startCLI(['--port=0', fixtures.path('debugger/empty.js')]);
14
15const rootDir = path.resolve(__dirname, '..', '..');
16
17(async () => {
18  await cli.waitForInitialBreak();
19  await cli.waitForPrompt();
20  await cli.command('profile');
21  await cli.command('profileEnd');
22  assert.match(cli.output, /\[Profile \d+μs\]/);
23  await cli.command('profiles');
24  assert.match(cli.output, /\[ \[Profile \d+μs\] \]/);
25  await cli.command('profiles[0].save()');
26  assert.match(cli.output, /Saved profile to .*node\.cpuprofile/);
27
28  const cpuprofile = path.resolve(rootDir, 'node.cpuprofile');
29  const data = JSON.parse(fs.readFileSync(cpuprofile, 'utf8'));
30  assert.strictEqual(Array.isArray(data.nodes), true);
31
32  fs.rmSync(cpuprofile);
33})()
34.then(common.mustCall())
35.finally(() => cli.quit());
36