11cb0ef41Sopenharmony_ciimport { spawnPromisified } from '../common/index.mjs'; 21cb0ef41Sopenharmony_ciimport assert from 'node:assert'; 31cb0ef41Sopenharmony_ciimport { execPath } from 'node:process'; 41cb0ef41Sopenharmony_ciimport { describe, it } from 'node:test'; 51cb0ef41Sopenharmony_ci 61cb0ef41Sopenharmony_ci 71cb0ef41Sopenharmony_cidescribe('--trace-uncaught', () => { 81cb0ef41Sopenharmony_ci it('prints a trace on process exit for uncaught errors', async () => { 91cb0ef41Sopenharmony_ci for (const value of [null, undefined]) { 101cb0ef41Sopenharmony_ci const { code, signal, stderr } = await spawnPromisified(execPath, [ 111cb0ef41Sopenharmony_ci '--trace-uncaught', 121cb0ef41Sopenharmony_ci '--eval', 131cb0ef41Sopenharmony_ci `throw ${value};`, 141cb0ef41Sopenharmony_ci ]); 151cb0ef41Sopenharmony_ci assert.match(stderr, /^Thrown at:$/m); 161cb0ef41Sopenharmony_ci assert.match(stderr, /^ {4}at \[eval\]:1:1$/m); 171cb0ef41Sopenharmony_ci assert.strictEqual(code, 1); 181cb0ef41Sopenharmony_ci assert.strictEqual(signal, null); 191cb0ef41Sopenharmony_ci } 201cb0ef41Sopenharmony_ci }); 211cb0ef41Sopenharmony_ci}); 22