Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fixup! do not expect new messages - callback
  • Loading branch information
szmarczak authored Nov 13, 2020
commit 39ee90e7424a5b8acf5184671a2cd66022c189c1
32 changes: 14 additions & 18 deletions test/parallel/test-dns-channel-cancel.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,19 @@ const dgram = require('dgram');
const server = dgram.createSocket('udp4');
const resolver = new Resolver();

const expectedDomains = [];
const receivedDomains = [];
const desiredQueries = 11;
let finishedQueries = 0;

const addMessageListener = () => {
server.removeAllListeners('message');

server.once('message', () => {
server.once('message', common.mustNotCall);

resolver.cancel();
});
};

server.bind(0, common.mustCall(async () => {
resolver.setServers([`127.0.0.1:${server.address().port}`]);

Expand All @@ -23,34 +31,22 @@ server.bind(0, common.mustCall(async () => {

finishedQueries++;
if (finishedQueries === desiredQueries) {
assert.deepStrictEqual(expectedDomains.sort(), receivedDomains.sort());
server.close();
}
}, desiredQueries);

const next = (...args) => {
callback(...args);

addMessageListener();

// Multiple queries
for (let i = 1; i < desiredQueries; i++) {
const domain = `example${i}.org`;
expectedDomains.push(domain);
resolver.resolve4(domain, callback);
resolver.resolve4(`example${i}.org`, callback);
}
};

// Single query
expectedDomains.push('example0.org');
addMessageListener();
resolver.resolve4('example0.org', next);
}));

server.on('message', (msg, { address, port }) => {
const parsed = dnstools.parseDNSPacket(msg);

for (const question of parsed.questions) {
receivedDomains.push(question.domain);
}

// Do not send a reply.
resolver.cancel();
});