Skip to content

Commit 2e81ded

Browse files
Trotttargos
authored andcommitted
test: fix flaky test-dns and test-dns-lookup
Ubuntu 16.04 is going to be unsupported after April 2021. Switching Node.js CI to Ubuntu 18.04 for the internet tests resulted in failures in test-dns and test-dns-lookup because it returns server failure/try again on .invalid domain. Add a hostname for testing that will return record not found. PR-URL: #38282 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]>
1 parent face4b8 commit 2e81ded

File tree

3 files changed

+39
-36
lines changed

3 files changed

+39
-36
lines changed

test/common/internet.js

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ const addresses = {
2222
INVALID_HOST: 'something.invalid',
2323
// A host with MX records registered
2424
MX_HOST: 'nodejs.org',
25+
// On some systems, .invalid returns a server failure/try again rather than
26+
// record not found. Use this to guarantee record not found.
27+
NOT_FOUND: 'come.on.fhqwhgads',
2528
// A host with SRV records registered
2629
SRV_HOST: '_jabber._tcp.google.com',
2730
// A host with PTR records registered

test/internet/test-dns-lookup.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,39 @@ const { addresses } = require('../common/internet');
88
const assert = require('assert');
99

1010
assert.rejects(
11-
dnsPromises.lookup(addresses.INVALID_HOST, {
11+
dnsPromises.lookup(addresses.NOT_FOUND, {
1212
hints: 0,
1313
family: 0,
1414
all: false
1515
}),
1616
{
1717
code: 'ENOTFOUND',
18-
message: `getaddrinfo ENOTFOUND ${addresses.INVALID_HOST}`
18+
message: `getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}`
1919
}
2020
);
2121

2222
assert.rejects(
23-
dnsPromises.lookup(addresses.INVALID_HOST, {
23+
dnsPromises.lookup(addresses.NOT_FOUND, {
2424
hints: 0,
2525
family: 0,
2626
all: true
2727
}),
2828
{
2929
code: 'ENOTFOUND',
30-
message: `getaddrinfo ENOTFOUND ${addresses.INVALID_HOST}`
30+
message: `getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}`
3131
}
3232
);
3333

34-
dns.lookup(addresses.INVALID_HOST, {
34+
dns.lookup(addresses.NOT_FOUND, {
3535
hints: 0,
3636
family: 0,
3737
all: true
3838
}, common.mustCall((error) => {
3939
assert.strictEqual(error.code, 'ENOTFOUND');
4040
assert.strictEqual(
4141
error.message,
42-
`getaddrinfo ENOTFOUND ${addresses.INVALID_HOST}`
42+
`getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}`
4343
);
4444
assert.strictEqual(error.syscall, 'getaddrinfo');
45-
assert.strictEqual(error.hostname, addresses.INVALID_HOST);
45+
assert.strictEqual(error.hostname, addresses.NOT_FOUND);
4646
}));

test/internet/test-dns.js

+29-29
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,13 @@ TEST(async function test_resolveMx(done) {
163163
});
164164

165165
TEST(function test_resolveMx_failure(done) {
166-
dnsPromises.resolveMx(addresses.INVALID_HOST)
166+
dnsPromises.resolveMx(addresses.NOT_FOUND)
167167
.then(common.mustNotCall())
168168
.catch(common.mustCall((err) => {
169169
assert.strictEqual(err.code, 'ENOTFOUND');
170170
}));
171171

172-
const req = dns.resolveMx(addresses.INVALID_HOST, function(err, result) {
172+
const req = dns.resolveMx(addresses.NOT_FOUND, function(err, result) {
173173
assert.ok(err instanceof Error);
174174
assert.strictEqual(err.code, 'ENOTFOUND');
175175

@@ -203,13 +203,13 @@ TEST(async function test_resolveNs(done) {
203203
});
204204

205205
TEST(function test_resolveNs_failure(done) {
206-
dnsPromises.resolveNs(addresses.INVALID_HOST)
206+
dnsPromises.resolveNs(addresses.NOT_FOUND)
207207
.then(common.mustNotCall())
208208
.catch(common.mustCall((err) => {
209209
assert.strictEqual(err.code, 'ENOTFOUND');
210210
}));
211211

212-
const req = dns.resolveNs(addresses.INVALID_HOST, function(err, result) {
212+
const req = dns.resolveNs(addresses.NOT_FOUND, function(err, result) {
213213
assert.ok(err instanceof Error);
214214
assert.strictEqual(err.code, 'ENOTFOUND');
215215

@@ -247,13 +247,13 @@ TEST(async function test_resolveSrv(done) {
247247
});
248248

249249
TEST(function test_resolveSrv_failure(done) {
250-
dnsPromises.resolveSrv(addresses.INVALID_HOST)
250+
dnsPromises.resolveSrv(addresses.NOT_FOUND)
251251
.then(common.mustNotCall())
252252
.catch(common.mustCall((err) => {
253253
assert.strictEqual(err.code, 'ENOTFOUND');
254254
}));
255255

256-
const req = dns.resolveSrv(addresses.INVALID_HOST, function(err, result) {
256+
const req = dns.resolveSrv(addresses.NOT_FOUND, function(err, result) {
257257
assert.ok(err instanceof Error);
258258
assert.strictEqual(err.code, 'ENOTFOUND');
259259

@@ -287,13 +287,13 @@ TEST(async function test_resolvePtr(done) {
287287
});
288288

289289
TEST(function test_resolvePtr_failure(done) {
290-
dnsPromises.resolvePtr(addresses.INVALID_HOST)
290+
dnsPromises.resolvePtr(addresses.NOT_FOUND)
291291
.then(common.mustNotCall())
292292
.catch(common.mustCall((err) => {
293293
assert.strictEqual(err.code, 'ENOTFOUND');
294294
}));
295295

296-
const req = dns.resolvePtr(addresses.INVALID_HOST, function(err, result) {
296+
const req = dns.resolvePtr(addresses.NOT_FOUND, function(err, result) {
297297
assert.ok(err instanceof Error);
298298
assert.strictEqual(err.code, 'ENOTFOUND');
299299

@@ -332,13 +332,13 @@ TEST(async function test_resolveNaptr(done) {
332332
});
333333

334334
TEST(function test_resolveNaptr_failure(done) {
335-
dnsPromises.resolveNaptr(addresses.INVALID_HOST)
335+
dnsPromises.resolveNaptr(addresses.NOT_FOUND)
336336
.then(common.mustNotCall())
337337
.catch(common.mustCall((err) => {
338338
assert.strictEqual(err.code, 'ENOTFOUND');
339339
}));
340340

341-
const req = dns.resolveNaptr(addresses.INVALID_HOST, function(err, result) {
341+
const req = dns.resolveNaptr(addresses.NOT_FOUND, function(err, result) {
342342
assert.ok(err instanceof Error);
343343
assert.strictEqual(err.code, 'ENOTFOUND');
344344

@@ -381,13 +381,13 @@ TEST(async function test_resolveSoa(done) {
381381
});
382382

383383
TEST(function test_resolveSoa_failure(done) {
384-
dnsPromises.resolveSoa(addresses.INVALID_HOST)
384+
dnsPromises.resolveSoa(addresses.NOT_FOUND)
385385
.then(common.mustNotCall())
386386
.catch(common.mustCall((err) => {
387387
assert.strictEqual(err.code, 'ENOTFOUND');
388388
}));
389389

390-
const req = dns.resolveSoa(addresses.INVALID_HOST, function(err, result) {
390+
const req = dns.resolveSoa(addresses.NOT_FOUND, function(err, result) {
391391
assert.ok(err instanceof Error);
392392
assert.strictEqual(err.code, 'ENOTFOUND');
393393

@@ -421,13 +421,13 @@ TEST(async function test_resolveCaa(done) {
421421
});
422422

423423
TEST(function test_resolveCaa_failure(done) {
424-
dnsPromises.resolveTxt(addresses.INVALID_HOST)
424+
dnsPromises.resolveTxt(addresses.NOT_FOUND)
425425
.then(common.mustNotCall())
426426
.catch(common.mustCall((err) => {
427427
assert.strictEqual(err.code, 'ENOTFOUND');
428428
}));
429429

430-
const req = dns.resolveCaa(addresses.INVALID_HOST, function(err, result) {
430+
const req = dns.resolveCaa(addresses.NOT_FOUND, function(err, result) {
431431
assert.ok(err instanceof Error);
432432
assert.strictEqual(err.code, 'ENOTFOUND');
433433

@@ -461,13 +461,13 @@ TEST(async function test_resolveCname(done) {
461461
});
462462

463463
TEST(function test_resolveCname_failure(done) {
464-
dnsPromises.resolveCname(addresses.INVALID_HOST)
464+
dnsPromises.resolveCname(addresses.NOT_FOUND)
465465
.then(common.mustNotCall())
466466
.catch(common.mustCall((err) => {
467467
assert.strictEqual(err.code, 'ENOTFOUND');
468468
}));
469469

470-
const req = dns.resolveCname(addresses.INVALID_HOST, function(err, result) {
470+
const req = dns.resolveCname(addresses.NOT_FOUND, function(err, result) {
471471
assert.ok(err instanceof Error);
472472
assert.strictEqual(err.code, 'ENOTFOUND');
473473

@@ -499,13 +499,13 @@ TEST(async function test_resolveTxt(done) {
499499
});
500500

501501
TEST(function test_resolveTxt_failure(done) {
502-
dnsPromises.resolveTxt(addresses.INVALID_HOST)
502+
dnsPromises.resolveTxt(addresses.NOT_FOUND)
503503
.then(common.mustNotCall())
504504
.catch(common.mustCall((err) => {
505505
assert.strictEqual(err.code, 'ENOTFOUND');
506506
}));
507507

508-
const req = dns.resolveTxt(addresses.INVALID_HOST, function(err, result) {
508+
const req = dns.resolveTxt(addresses.NOT_FOUND, function(err, result) {
509509
assert.ok(err instanceof Error);
510510
assert.strictEqual(err.code, 'ENOTFOUND');
511511

@@ -519,16 +519,16 @@ TEST(function test_resolveTxt_failure(done) {
519519

520520

521521
TEST(function test_lookup_failure(done) {
522-
dnsPromises.lookup(addresses.INVALID_HOST, 4)
522+
dnsPromises.lookup(addresses.NOT_FOUND, 4)
523523
.then(common.mustNotCall())
524524
.catch(common.expectsError({ code: dns.NOTFOUND }));
525525

526-
const req = dns.lookup(addresses.INVALID_HOST, 4, (err) => {
526+
const req = dns.lookup(addresses.NOT_FOUND, 4, (err) => {
527527
assert.ok(err instanceof Error);
528528
assert.strictEqual(err.code, dns.NOTFOUND);
529529
assert.strictEqual(err.code, 'ENOTFOUND');
530530
assert.ok(!/ENOENT/.test(err.message));
531-
assert.ok(err.message.includes(addresses.INVALID_HOST));
531+
assert.ok(err.message.includes(addresses.NOT_FOUND));
532532

533533
done();
534534
});
@@ -672,18 +672,18 @@ TEST(function test_reverse_failure(done) {
672672

673673

674674
TEST(function test_lookup_failure(done) {
675-
dnsPromises.lookup(addresses.INVALID_HOST)
675+
dnsPromises.lookup(addresses.NOT_FOUND)
676676
.then(common.mustNotCall())
677677
.catch(common.expectsError({
678678
code: 'ENOTFOUND',
679-
hostname: addresses.INVALID_HOST
679+
hostname: addresses.NOT_FOUND
680680
}));
681681

682-
const req = dns.lookup(addresses.INVALID_HOST, (err) => {
682+
const req = dns.lookup(addresses.NOT_FOUND, (err) => {
683683
assert(err instanceof Error);
684684
assert.strictEqual(err.code, 'ENOTFOUND'); // Silly error code...
685-
assert.strictEqual(err.hostname, addresses.INVALID_HOST);
686-
assert.ok(err.message.includes(addresses.INVALID_HOST));
685+
assert.strictEqual(err.hostname, addresses.NOT_FOUND);
686+
assert.ok(err.message.includes(addresses.NOT_FOUND));
687687

688688
done();
689689
});
@@ -693,7 +693,7 @@ TEST(function test_lookup_failure(done) {
693693

694694

695695
TEST(function test_resolve_failure(done) {
696-
const req = dns.resolve4(addresses.INVALID_HOST, (err) => {
696+
const req = dns.resolve4(addresses.NOT_FOUND, (err) => {
697697
assert(err instanceof Error);
698698

699699
switch (err.code) {
@@ -705,8 +705,8 @@ TEST(function test_resolve_failure(done) {
705705
break;
706706
}
707707

708-
assert.strictEqual(err.hostname, addresses.INVALID_HOST);
709-
assert.ok(err.message.includes(addresses.INVALID_HOST));
708+
assert.strictEqual(err.hostname, addresses.NOT_FOUND);
709+
assert.ok(err.message.includes(addresses.NOT_FOUND));
710710

711711
done();
712712
});

0 commit comments

Comments
 (0)