Outlook_Addin_LLM/node_modules/async-hook-jl/test/test-immediate-exception.js

33 lines
802 B
JavaScript

'use strict';
if (process.env.hasOwnProperty('ASYNC_HOOK_TEST_CHILD')) {
const asyncHook = require('../');
asyncHook.enable();
setImmediate(function () {
throw new Error('test error');
});
} else {
const spawn = require('child_process').spawn;
const endpoint = require('endpoint');
const child = spawn(process.execPath, [__filename], {
env: Object.assign({ ASYNC_HOOK_TEST_CHILD: '' }, process.env),
stdio: ['ignore', 1, 'pipe']
});
let stderr = null;
child.stderr.pipe(endpoint(function (err, _stderr) {
if (err) throw err;
stderr = _stderr;
}));
child.once('close', function (statusCode) {
if (statusCode !== 1 || stderr.toString().indexOf('test error') === -1) {
process.stderr.write(stderr);
process.exit(statusCode);
}
});
}