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