1'use strict';
2
3// This tests that --cpu-prof generates CPU profile from worker
4// when execArgv is set.
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  verifyFrames
18} = require('../common/cpu-prof');
19
20{
21  tmpdir.refresh();
22  const output = spawnSync(process.execPath, [
23    fixtures.path('workload', 'fibonacci-worker-argv.js'),
24  ], {
25    cwd: tmpdir.path,
26    env: {
27      ...process.env,
28      CPU_PROF_INTERVAL: kCpuProfInterval
29    }
30  });
31  if (output.status !== 0) {
32    console.log(output.stderr.toString());
33  }
34  assert.strictEqual(output.status, 0);
35  const profiles = getCpuProfiles(tmpdir.path);
36  assert.strictEqual(profiles.length, 1);
37  verifyFrames(output, profiles[0], 'fibonacci.js');
38}
39