1'use strict';
2
3// This tests that --cpu-prof-dir and --cpu-prof-name works together.
4
5const common = require('../common');
6const fixtures = require('../common/fixtures');
7common.skipIfInspectorDisabled();
8
9const assert = require('assert');
10const fs = require('fs');
11const path = require('path');
12const { spawnSync } = require('child_process');
13
14const tmpdir = require('../common/tmpdir');
15const {
16  getCpuProfiles,
17  kCpuProfInterval,
18  env,
19  verifyFrames
20} = require('../common/cpu-prof');
21
22{
23  tmpdir.refresh();
24  const dir = path.join(tmpdir.path, 'prof');
25  const file = path.join(dir, 'test.cpuprofile');
26  const output = spawnSync(process.execPath, [
27    '--cpu-prof',
28    '--cpu-prof-interval',
29    kCpuProfInterval,
30    '--cpu-prof-name',
31    'test.cpuprofile',
32    '--cpu-prof-dir',
33    dir,
34    fixtures.path('workload', 'fibonacci.js'),
35  ], {
36    cwd: tmpdir.path,
37    env
38  });
39  if (output.status !== 0) {
40    console.log(output.stderr.toString());
41  }
42  assert.strictEqual(output.status, 0);
43  assert(fs.existsSync(dir));
44  const profiles = getCpuProfiles(dir);
45  assert.deepStrictEqual(profiles, [file]);
46  verifyFrames(output, file, 'fibonacci.js');
47}
48