2022-07-09 20:14:27 +00:00
|
|
|
'use strict';
|
|
|
|
const common = require('../common');
|
|
|
|
|
|
|
|
common.skipIfInspectorDisabled();
|
|
|
|
|
|
|
|
const fixtures = require('../common/fixtures');
|
|
|
|
const startCLI = require('../common/debugger');
|
|
|
|
|
|
|
|
const assert = require('assert');
|
|
|
|
const fs = require('fs');
|
|
|
|
const path = require('path');
|
|
|
|
|
2023-03-27 22:03:40 +00:00
|
|
|
const cli = startCLI(['--port=0', fixtures.path('debugger/empty.js')]);
|
2022-07-09 20:14:27 +00:00
|
|
|
|
|
|
|
const rootDir = path.resolve(__dirname, '..', '..');
|
|
|
|
|
|
|
|
(async () => {
|
|
|
|
await cli.waitForInitialBreak();
|
|
|
|
await cli.waitForPrompt();
|
|
|
|
await cli.command('profile');
|
|
|
|
await cli.command('profileEnd');
|
|
|
|
assert.match(cli.output, /\[Profile \d+μs\]/);
|
|
|
|
await cli.command('profiles');
|
|
|
|
assert.match(cli.output, /\[ \[Profile \d+μs\] \]/);
|
|
|
|
await cli.command('profiles[0].save()');
|
|
|
|
assert.match(cli.output, /Saved profile to .*node\.cpuprofile/);
|
|
|
|
|
|
|
|
const cpuprofile = path.resolve(rootDir, 'node.cpuprofile');
|
|
|
|
const data = JSON.parse(fs.readFileSync(cpuprofile, 'utf8'));
|
|
|
|
assert.strictEqual(Array.isArray(data.nodes), true);
|
|
|
|
|
|
|
|
fs.rmSync(cpuprofile);
|
|
|
|
})()
|
|
|
|
.then(common.mustCall())
|
|
|
|
.finally(() => cli.quit());
|