11cb0ef41Sopenharmony_ci'use strict';
21cb0ef41Sopenharmony_ci
31cb0ef41Sopenharmony_ciconst common = require('../common');
41cb0ef41Sopenharmony_ci
51cb0ef41Sopenharmony_ci// This test verifies that `tls.connect()` honors the `hints` option.
61cb0ef41Sopenharmony_ci
71cb0ef41Sopenharmony_ciif (!common.hasCrypto)
81cb0ef41Sopenharmony_ci  common.skip('missing crypto');
91cb0ef41Sopenharmony_ci
101cb0ef41Sopenharmony_ciconst assert = require('assert');
111cb0ef41Sopenharmony_ciconst dns = require('dns');
121cb0ef41Sopenharmony_ciconst tls = require('tls');
131cb0ef41Sopenharmony_ci
141cb0ef41Sopenharmony_ciconst hints = 512;
151cb0ef41Sopenharmony_ci
161cb0ef41Sopenharmony_ciassert.notStrictEqual(hints, dns.ADDRCONFIG);
171cb0ef41Sopenharmony_ciassert.notStrictEqual(hints, dns.V4MAPPED);
181cb0ef41Sopenharmony_ciassert.notStrictEqual(hints, dns.ALL);
191cb0ef41Sopenharmony_ciassert.notStrictEqual(hints, dns.ADDRCONFIG | dns.V4MAPPED);
201cb0ef41Sopenharmony_ciassert.notStrictEqual(hints, dns.ADDRCONFIG | dns.ALL);
211cb0ef41Sopenharmony_ciassert.notStrictEqual(hints, dns.V4MAPPED | dns.ALL);
221cb0ef41Sopenharmony_ciassert.notStrictEqual(hints, dns.ADDRCONFIG | dns.V4MAPPED | dns.ALL);
231cb0ef41Sopenharmony_ci
241cb0ef41Sopenharmony_citls.connect({
251cb0ef41Sopenharmony_ci  port: 42,
261cb0ef41Sopenharmony_ci  lookup: common.mustCall((host, options) => {
271cb0ef41Sopenharmony_ci    assert.strictEqual(host, 'localhost');
281cb0ef41Sopenharmony_ci    assert.deepStrictEqual(options, { family: undefined, hints });
291cb0ef41Sopenharmony_ci  }),
301cb0ef41Sopenharmony_ci  hints
311cb0ef41Sopenharmony_ci});
32