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