summaryrefslogtreecommitdiff
path: root/test/sequential/test-cpu-prof-exit.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/sequential/test-cpu-prof-exit.js')
-rw-r--r--test/sequential/test-cpu-prof-exit.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/sequential/test-cpu-prof-exit.js b/test/sequential/test-cpu-prof-exit.js
new file mode 100644
index 0000000000..34b1acff4b
--- /dev/null
+++ b/test/sequential/test-cpu-prof-exit.js
@@ -0,0 +1,39 @@
+'use strict';
+
+// This tests that --cpu-prof generates CPU profile when
+// process.exit(55) exits the process.
+
+const common = require('../common');
+const fixtures = require('../common/fixtures');
+common.skipIfInspectorDisabled();
+
+const assert = require('assert');
+const { spawnSync } = require('child_process');
+
+const tmpdir = require('../common/tmpdir');
+const {
+ getCpuProfiles,
+ kCpuProfInterval,
+ env,
+ verifyFrames
+} = require('../common/cpu-prof');
+
+{
+ tmpdir.refresh();
+ const output = spawnSync(process.execPath, [
+ '--cpu-prof',
+ '--cpu-prof-interval',
+ kCpuProfInterval,
+ fixtures.path('workload', 'fibonacci-exit.js'),
+ ], {
+ cwd: tmpdir.path,
+ env
+ });
+ if (output.status !== 55) {
+ console.log(output.stderr.toString());
+ }
+ assert.strictEqual(output.status, 55);
+ const profiles = getCpuProfiles(tmpdir.path);
+ assert.strictEqual(profiles.length, 1);
+ verifyFrames(output, profiles[0], 'fibonacci-exit.js');
+}