• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3// This tests that --cpu-prof generates CPU profile when
4// process.exit(55) exits the process.
5
6const common = require('../common');
7const fixtures = require('../common/fixtures');
8common.skipIfInspectorDisabled();
9
10const assert = require('assert');
11const { spawnSync } = require('child_process');
12
13const tmpdir = require('../common/tmpdir');
14const {
15  getCpuProfiles,
16  kCpuProfInterval,
17  env,
18  verifyFrames
19} = require('../common/cpu-prof');
20
21{
22  tmpdir.refresh();
23  const output = spawnSync(process.execPath, [
24    '--cpu-prof',
25    '--cpu-prof-interval',
26    kCpuProfInterval,
27    fixtures.path('workload', 'fibonacci-exit.js'),
28  ], {
29    cwd: tmpdir.path,
30    env
31  });
32  if (output.status !== 55) {
33    console.log(output.stderr.toString());
34  }
35  assert.strictEqual(output.status, 55);
36  const profiles = getCpuProfiles(tmpdir.path);
37  assert.strictEqual(profiles.length, 1);
38  verifyFrames(output, profiles[0], 'fibonacci-exit.js');
39}
40