Skip to content

Commit

Permalink
test: simplify node-report/test-exception.js
Browse files Browse the repository at this point in the history
PR-URL: #26277
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
  • Loading branch information
cjihrig authored and addaleax committed Mar 1, 2019
1 parent e8995d1 commit 88256d7
Showing 1 changed file with 18 additions and 36 deletions.
54 changes: 18 additions & 36 deletions test/node-report/test-exception.js
Original file line number Diff line number Diff line change
@@ -1,42 +1,24 @@
// Flags: --experimental-report --diagnostic-report-uncaught-exception
'use strict';

// Testcase to produce report on uncaught exception
// Test producing a report on uncaught exception.
const common = require('../common');
common.skipIfReportDisabled();
if (process.argv[2] === 'child') {
function myException(request, response) {
const m = '*** test-exception.js: throwing uncaught Error';
throw new Error(m);
}
const assert = require('assert');
const helper = require('../common/report');
const tmpdir = require('../common/tmpdir');
const error = new Error('test error');

myException();
common.expectWarning('ExperimentalWarning',
'report is an experimental feature. This feature could ' +
'change at any time');
tmpdir.refresh();
process.report.setOptions({ path: tmpdir.path });

} else {
const helper = require('../common/report.js');
const tmpdir = require('../common/tmpdir');
tmpdir.refresh();
const spawn = require('child_process').spawn;
const assert = require('assert');
process.on('uncaughtException', common.mustCall((err) => {
assert.strictEqual(err, error);
const reports = helper.findReports(process.pid, tmpdir.path);
assert.strictEqual(reports.length, 1);
helper.validate(reports[0]);
}));

const child = spawn(process.execPath,
['--experimental-report',
'--diagnostic-report-uncaught-exception',
__filename, 'child'],
{ cwd: tmpdir.path });
// Capture stderr output from the child process
let stderr = '';
child.stderr.on('data', (chunk) => {
stderr += chunk;
});
child.on('exit', common.mustCall((code) => {
const report_msg = 'No reports found';
const process_msg = 'Process exited unexpectedly';
assert.strictEqual(code, 1, process_msg + ':' + code);
assert.ok(new RegExp('myException').test(stderr),
'Check for expected stack trace frame in stderr');
const reports = helper.findReports(child.pid, tmpdir.path);
assert.strictEqual(reports.length, 1, report_msg);
const report = reports[0];
helper.validate(report);
}));
}
throw error;

0 comments on commit 88256d7

Please sign in to comment.