Skip to content

Commit

Permalink
test: increase coverage of node_report_module.cc
Browse files Browse the repository at this point in the history
PR-URL: #26116
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
  • Loading branch information
richardlau authored and rvagg committed Feb 28, 2019
1 parent 82df851 commit 38a87d5
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 0 deletions.
29 changes: 29 additions & 0 deletions test/node-report/test-api-trigger-with-filename.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
'use strict';

// Tests when a report is triggered with a given filename.
const common = require('../common');
common.skipIfReportDisabled();
const filename = 'myreport.json';
if (process.argv[2] === 'child') {
process.report.triggerReport(filename);
} else {
const helper = require('../common/report.js');
const spawn = require('child_process').spawn;
const assert = require('assert');
const { join } = require('path');
const tmpdir = require('../common/tmpdir');
tmpdir.refresh();

const child = spawn(process.execPath,
['--experimental-report', __filename, 'child'],
{ cwd: tmpdir.path });
child.on('exit', common.mustCall((code) => {
const process_msg = 'Process exited unexpectedly';
assert.strictEqual(code, 0, process_msg + ':' + code);
const reports = helper.findReports(child.pid, tmpdir.path);
assert.strictEqual(reports.length, 0,
`Found unexpected report ${reports[0]}`);
const report = join(tmpdir.path, filename);
helper.validate(report);
}));
}
30 changes: 30 additions & 0 deletions test/node-report/test-api-trigger-with-options.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
'use strict';

// Tests when a report is triggered with options set.
const common = require('../common');
common.skipIfReportDisabled();
const filename = 'myreport.json';
if (process.argv[2] === 'child') {
process.report.setOptions({ filename: filename });
process.report.triggerReport();
} else {
const helper = require('../common/report.js');
const spawn = require('child_process').spawn;
const assert = require('assert');
const { join } = require('path');
const tmpdir = require('../common/tmpdir');
tmpdir.refresh();

const child = spawn(process.execPath,
['--experimental-report', __filename, 'child'],
{ cwd: tmpdir.path });
child.on('exit', common.mustCall((code) => {
const process_msg = 'Process exited unexpectedly';
assert.strictEqual(code, 0, process_msg + ':' + code);
const reports = helper.findReports(child.pid, tmpdir.path);
assert.strictEqual(reports.length, 0,
`Found unexpected report ${reports[0]}`);
const report = join(tmpdir.path, filename);
helper.validate(report);
}));
}
43 changes: 43 additions & 0 deletions test/node-report/test-diagnostic-report-verbose.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
'use strict';

// Tests --diagnostic-report-verbose option.
const common = require('../common');
common.skipIfReportDisabled();
if (process.argv[2] === 'child') {
// no-op
} else {
const helper = require('../common/report.js');
const spawn = require('child_process').spawn;
const assert = require('assert');
const tmpdir = require('../common/tmpdir');
tmpdir.refresh();

const expected = [ 'report: initialization complete, event flags:',
'report_uncaught_exception: 0',
'report_on_signal: 0',
'report_on_fatalerror: 0',
'report_signal:',
'report_filename:',
'report_directory:',
'report_verbose: 1' ];

const child = spawn(process.execPath,
['--experimental-report',
'--diagnostic-report-verbose',
__filename,
'child',
],
{ cwd: tmpdir.path });
let stderr;
child.stderr.on('data', (data) => stderr += data);
child.on('exit', common.mustCall((code) => {
const process_msg = 'Process exited unexpectedly';
assert.strictEqual(code, 0, process_msg + ':' + code);
const reports = helper.findReports(child.pid, tmpdir.path);
assert.strictEqual(reports.length, 0,
`Found unexpected report ${reports[0]}`);
for (const line of expected) {
assert.ok(stderr.includes(line), `'${line}' not found in '${stderr}'`);
}
}));
}

0 comments on commit 38a87d5

Please sign in to comment.