You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

32 lines
1.0 KiB

'use strict';
const common = require('../common');
const assert = require('assert');
let allsGood = false;
let cntr = 0;
process.on('exit', () => {
assert.ok(cntr > 0, '_tickDomainCallback was never called');
});
/**
* This test relies upon the following internals to work as specified:
* - require('domain') causes node::Environment::set_tick_callback_function()
* to use process._tickDomainCallback() to process the nextTickQueue;
* replacing process._tickCallback().
* - setImmediate() uses node::MakeCallback() instead of
* node::AsyncWrap::MakeCallback(). Otherwise the test will always pass.
* Have not found a way to verify that node::MakeCallback() is used.
*/
process._tickDomainCallback = function _tickDomainCallback() {
assert.ok(allsGood, '_tickDomainCallback should not have been called');
cntr++;
};
setImmediate(common.mustCall(() => {
require('domain');
setImmediate(common.mustCall(() => setImmediate(common.mustCall(() => {
allsGood = true;
process.nextTick(() => {});
}))));
}));