38 lines
1 KiB
JavaScript
38 lines
1 KiB
JavaScript
|
// simulate cases where the module could be loaded from multiple places
|
||
|
|
||
|
// Need to lie about this a little bit, since nyc uses this module
|
||
|
// for its coverage wrap-up handling
|
||
|
if (process.env.NYC_CWD) {
|
||
|
var emitter = process.__signal_exit_emitter__
|
||
|
var listeners = emitter.listeners('afterexit')
|
||
|
process.removeAllListeners('SIGHUP')
|
||
|
delete process.__signal_exit_emitter__
|
||
|
delete require('module')._cache[require.resolve('../../')]
|
||
|
}
|
||
|
|
||
|
var onSignalExit = require('../../')
|
||
|
var counter = 0
|
||
|
|
||
|
var unwrap = onSignalExit(function (code, signal) {
|
||
|
counter++
|
||
|
console.log('last counter=%j, code=%j, signal=%j',
|
||
|
counter, code, signal)
|
||
|
}, {alwaysLast: true})
|
||
|
unwrap()
|
||
|
|
||
|
unwrap = onSignalExit(function (code, signal) {
|
||
|
counter++
|
||
|
console.log('first counter=%j, code=%j, signal=%j',
|
||
|
counter, code, signal)
|
||
|
})
|
||
|
unwrap()
|
||
|
|
||
|
if (global.__coverage__ && listeners && listeners.length) {
|
||
|
listeners.forEach(function (fn) {
|
||
|
onSignalExit(fn, { alwaysLast: true })
|
||
|
})
|
||
|
}
|
||
|
|
||
|
process.kill(process.pid, 'SIGHUP')
|
||
|
setTimeout(function () {}, 1000)
|