diff options
author | Refael Ackermann <refack@gmail.com> | 2019-03-06 10:30:13 -0500 |
---|---|---|
committer | Refael Ackermann <refack@gmail.com> | 2019-03-09 10:13:02 -0500 |
commit | 961322178d69325a46dbcbaea1da818fff12c45a (patch) | |
tree | 72007dac6ac3639744f776346c49c5a6e9fdd865 /test/internet | |
parent | d57d09905e30227936ac80ff547da27181566082 (diff) | |
download | android-node-v8-961322178d69325a46dbcbaea1da818fff12c45a.tar.gz android-node-v8-961322178d69325a46dbcbaea1da818fff12c45a.tar.bz2 android-node-v8-961322178d69325a46dbcbaea1da818fff12c45a.zip |
test: de-flake test-dns-idna2008.js
* use known well-behaved DNS server
* force pass on ESERVFAIL
PR-URL: https://github.com/nodejs/node/pull/26473
Fixes: https://github.com/nodejs/node/issues/25870
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Diffstat (limited to 'test/internet')
-rw-r--r-- | test/internet/test-dns-idna2008.js | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/test/internet/test-dns-idna2008.js b/test/internet/test-dns-idna2008.js index ebabe322f0..2113dd74b4 100644 --- a/test/internet/test-dns-idna2008.js +++ b/test/internet/test-dns-idna2008.js @@ -11,23 +11,41 @@ const { mustCall } = require('../common'); const assert = require('assert'); const dns = require('dns'); +const { addresses } = require('../common/internet'); -const [host, expectedAddress] = ['straße.de', '81.169.145.78']; +const fixture = { + hostname: 'straße.de', + expectedAddress: '81.169.145.78', + dnsServer: addresses.DNS4_SERVER +}; -dns.lookup(host, mustCall((err, address) => { +// Explicitly use well behaved DNS servers that are known to be able to resolve +// the query (which is a.k.a xn--strae-oqa.de). +dns.setServers([fixture.dnsServer]); + +dns.lookup(fixture.hostname, mustCall((err, address) => { + if (err && err.errno === 'ESERVFAIL') { + assert.ok(err.message.includes('queryA ESERVFAIL straße.de')); + return; + } assert.ifError(err); - assert.strictEqual(address, expectedAddress); + assert.strictEqual(address, fixture.expectedAddress); })); -dns.promises.lookup(host).then(mustCall(({ address }) => { - assert.strictEqual(address, expectedAddress); +dns.promises.lookup(fixture.hostname).then(mustCall(({ address }) => { + assert.strictEqual(address, fixture.expectedAddress); +}).catch((err) => { + if (err && err.errno === 'ESERVFAIL') { + assert.ok(err.message.includes('queryA ESERVFAIL straße.de')); + } })); -dns.resolve4(host, mustCall((err, addresses) => { +dns.resolve4(fixture.hostname, mustCall((err, addresses) => { assert.ifError(err); - assert.deepStrictEqual(addresses, [expectedAddress]); + assert.deepStrictEqual(addresses, [fixture.expectedAddress]); })); -new dns.promises.Resolver().resolve4(host).then(mustCall((addresses) => { - assert.deepStrictEqual(addresses, [expectedAddress]); +const p = new dns.promises.Resolver().resolve4(fixture.hostname); +p.then(mustCall((addresses) => { + assert.deepStrictEqual(addresses, [fixture.expectedAddress]); })); |