1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-20 22:34:46 -05:00
denoland-deno/tests/node_compat/test/parallel/test-worker-on-process-exit.js

30 lines
1 KiB
JavaScript
Raw Normal View History

// deno-fmt-ignore-file
// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
// Taken from Node 20.11.1
// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually.
'use strict';
require('../common');
const assert = require('assert');
const { spawnSync } = require('child_process');
const { Worker } = require('worker_threads');
// Test that 'exit' events for Workers are not received when the main thread
// terminates itself through process.exit().
if (process.argv[2] !== 'child') {
const {
stdout, stderr, status
} = spawnSync(process.execPath, [__filename, 'child'], { encoding: 'utf8' });
assert.strictEqual(stderr, '');
assert.strictEqual(stdout, '');
assert.strictEqual(status, 0);
} else {
const nestedWorker = new Worker('setInterval(() => {}, 100)', { eval: true });
// This console.log() should never fire.
nestedWorker.on('exit', () => console.log('exit event received'));
nestedWorker.on('online', () => process.exit());
}