mirror of https://github.com/lukechilds/node.git
Browse Source
The uncaught exception test for `_debugger.js` was not exercising some code (particularly concerning `interface_.child`) because of the synchronous nature of the test. This adds an asynchronous version to increase test coverage. PR-URL: https://github.com/nodejs/node/pull/8403 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: James M Snell <jasnell@gmail.com>v7.x
Rich Trott
8 years ago
2 changed files with 40 additions and 0 deletions
@ -0,0 +1,18 @@ |
|||
'use strict'; |
|||
|
|||
require('../common'); |
|||
const assert = require('assert'); |
|||
const debug = require('_debugger'); |
|||
|
|||
function emit() { |
|||
const error = new Error('fhqwhgads'); |
|||
process.emit('uncaughtException', error); |
|||
} |
|||
|
|||
assert.doesNotThrow(emit); |
|||
|
|||
// Send debug.start() an argv array of length 1 to avoid code that exits
|
|||
// if argv is empty.
|
|||
debug.start(['sterrance']); |
|||
|
|||
setImmediate(emit); |
@ -0,0 +1,22 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
const path = require('path'); |
|||
const spawn = require('child_process').spawn; |
|||
|
|||
const emitUncaught = path.join(common.fixturesDir, 'debug-uncaught-async.js'); |
|||
const result = spawn(process.execPath, [emitUncaught], {encoding: 'utf8'}); |
|||
|
|||
var stderr = ''; |
|||
result.stderr.on('data', (data) => { |
|||
stderr += data; |
|||
}); |
|||
|
|||
result.on('close', (code) => { |
|||
const expectedMessage = |
|||
"There was an internal error in Node's debugger. Please report this bug."; |
|||
|
|||
assert.strictEqual(code, 1); |
|||
assert(stderr.includes(expectedMessage)); |
|||
assert(stderr.includes('Error: fhqwhgads')); |
|||
}); |
Loading…
Reference in new issue