From 7146ddd8a068e08de15646bf8fe4090835682bb9 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sun, 16 Jun 2019 23:11:51 -0400 Subject: [PATCH] test: add Worker + uncaughtException + process.exit() test PR-URL: https://github.com/nodejs/node/pull/28259 Reviewed-By: Gireesh Punathil Reviewed-By: Rich Trott Reviewed-By: Joyee Cheung Reviewed-By: Franziska Hinkelmann --- ...est-worker-exit-from-uncaught-exception.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 test/parallel/test-worker-exit-from-uncaught-exception.js diff --git a/test/parallel/test-worker-exit-from-uncaught-exception.js b/test/parallel/test-worker-exit-from-uncaught-exception.js new file mode 100644 index 00000000000..b9f8aeee97d --- /dev/null +++ b/test/parallel/test-worker-exit-from-uncaught-exception.js @@ -0,0 +1,23 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { Worker } = require('worker_threads'); + +// Check that `process.exit()` can be called inside a Worker from an uncaught +// exception handler. + +// Do not use isMainThread so that this test itself can be run inside a Worker. +if (!process.env.HAS_STARTED_WORKER) { + process.env.HAS_STARTED_WORKER = 1; + const w = new Worker(__filename); + w.on('exit', common.mustCall((code) => { + assert.strictEqual(code, 42); + })); + return; +} + +process.on('uncaughtException', () => { + process.exit(42); +}); + +throw new Error();