59 lines
1.1 KiB
JavaScript
59 lines
1.1 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
const asyncHook = require('../');
|
||
|
const assert = require('assert');
|
||
|
const net = require('net');
|
||
|
|
||
|
let called = false;
|
||
|
let firstHook = true;
|
||
|
|
||
|
let initCalls = 0;
|
||
|
|
||
|
let serverHandle = {};
|
||
|
let serverUid = NaN;
|
||
|
|
||
|
let clientParentHandle = {};
|
||
|
let clientParentUid = NaN;
|
||
|
|
||
|
|
||
|
asyncHook.addHooks({
|
||
|
init: function (uid, handle, provider, parentUid, parentHandle) {
|
||
|
if (provider != asyncHook.providers.TCPWRAP) return;
|
||
|
|
||
|
if (firstHook) {
|
||
|
firstHook = false;
|
||
|
|
||
|
serverUid = uid;
|
||
|
serverHandle = handle;
|
||
|
|
||
|
assert.equal(parentUid, null);
|
||
|
assert.equal(parentHandle, null);
|
||
|
} else {
|
||
|
clientParentHandle = parentHandle;
|
||
|
clientParentUid = parentUid;
|
||
|
}
|
||
|
|
||
|
initCalls += 1;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
asyncHook.enable();
|
||
|
|
||
|
const server = net.createServer(function (socket) {
|
||
|
socket.end();
|
||
|
server.close();
|
||
|
called = true;
|
||
|
}).listen(function () {
|
||
|
net.connect(this.address());
|
||
|
});
|
||
|
|
||
|
asyncHook.disable();
|
||
|
|
||
|
process.once('exit', function () {
|
||
|
assert.equal(serverHandle, clientParentHandle);
|
||
|
assert.equal(serverUid, clientParentUid);
|
||
|
|
||
|
assert.equal(called, true);
|
||
|
assert.equal(initCalls, 2);
|
||
|
});
|