mirror of
https://github.com/denoland/deno.git
synced 2024-12-18 21:35:31 -05:00
30 lines
1 KiB
JavaScript
30 lines
1 KiB
JavaScript
|
// 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());
|
||
|
}
|