Home / Function/ testAllNameServers() — netty Function Reference

testAllNameServers() — netty Function Reference

Architecture documentation for the testAllNameServers() function in DnsNameResolverTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  3d470389_d983_c2f3_f47b_5faf9270266f["testAllNameServers()"]
  b6215f36_0afe_a284_a3fd_3999e90a8e97["DnsNameResolverTest"]
  3d470389_d983_c2f3_f47b_5faf9270266f -->|defined in| b6215f36_0afe_a284_a3fd_3999e90a8e97
  ef2cf45f_c2d6_70e5_01ac_e5eddd31affe["assertResolvedAddress()"]
  3d470389_d983_c2f3_f47b_5faf9270266f -->|calls| ef2cf45f_c2d6_70e5_01ac_e5eddd31affe
  df4510f5_88a8_20fd_2366_a4c543cdf3b8["resolve()"]
  3d470389_d983_c2f3_f47b_5faf9270266f -->|calls| df4510f5_88a8_20fd_2366_a4c543cdf3b8
  f68a278a_d1e5_7598_a2d3_c261c81029bc["get()"]
  3d470389_d983_c2f3_f47b_5faf9270266f -->|calls| f68a278a_d1e5_7598_a2d3_c261c81029bc
  style 3d470389_d983_c2f3_f47b_5faf9270266f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java lines 3718–3792

    @ParameterizedTest
    @EnumSource(DnsNameResolverChannelStrategy.class)
    public void testAllNameServers(DnsNameResolverChannelStrategy strategy) throws IOException {
        final String domain = "netty.io";
        final String ipv4Addr = "1.2.3.4";
        final AtomicInteger server2Counter = new AtomicInteger();
        final TestDnsServer dnsServer2 = new TestDnsServer(new RecordStore() {
            @Override
            public Set<ResourceRecord> getRecords(QuestionRecord question) {
                server2Counter.incrementAndGet();
                ResourceRecordModifier rm = new ResourceRecordModifier();
                rm.setDnsClass(RecordClass.IN);
                rm.setDnsName(question.getDomainName());
                rm.setDnsTtl(100);

                rm.setDnsType(question.getRecordType());
                rm.put(DnsAttribute.IP_ADDRESS, ipv4Addr);
                return Collections.singleton(rm.getEntry());
            }
        });
        dnsServer2.start();

        final AtomicInteger server3Counter = new AtomicInteger();
        final TestDnsServer dnsServer3 = new TestDnsServer(new RecordStore() {
            @Override
            public Set<ResourceRecord> getRecords(QuestionRecord question) {
                server3Counter.incrementAndGet();
                ResourceRecordModifier rm = new ResourceRecordModifier();
                rm.setDnsClass(RecordClass.IN);
                rm.setDnsName(question.getDomainName());
                rm.setDnsTtl(100);

                rm.setDnsType(question.getRecordType());
                rm.put(DnsAttribute.IP_ADDRESS, ipv4Addr);
                return Collections.singleton(rm.getEntry());
            }
        });
        dnsServer3.start();
        DnsNameResolver resolver = null;
        try {
            resolver = newResolver(strategy)
                    .resolveCache(NoopDnsCache.INSTANCE)
                    .cnameCache(NoopDnsCnameCache.INSTANCE)
                    .recursionDesired(true)
                    .maxQueriesPerResolve(16)
                    .nameServerProvider(new DnsServerAddressStreamProvider() {
                        private final DnsServerAddresses addresses =
                                DnsServerAddresses.rotational(dnsServer2.localAddress(), dnsServer3.localAddress());
                        @Override
                        public DnsServerAddressStream nameServerAddressStream(String hostname) {
                            return addresses.stream();
                        }
                    })
                    .resolvedAddressTypes(ResolvedAddressTypes.IPV4_ONLY).build();

            assertResolvedAddress(resolver.resolve(domain).syncUninterruptibly().getNow(), ipv4Addr, domain);
            assertEquals(1, server2Counter.get());
            assertEquals(0, server3Counter.get());
            assertResolvedAddress(resolver.resolve(domain).syncUninterruptibly().getNow(), ipv4Addr, domain);
            assertEquals(1, server2Counter.get());
            assertEquals(1, server3Counter.get());
            assertResolvedAddress(resolver.resolve(domain).syncUninterruptibly().getNow(), ipv4Addr, domain);
            assertEquals(2, server2Counter.get());
            assertEquals(1, server3Counter.get());
            assertResolvedAddress(resolver.resolve(domain).syncUninterruptibly().getNow(), ipv4Addr, domain);
            assertEquals(2, server2Counter.get());
            assertEquals(2, server3Counter.get());
        } finally {
            dnsServer2.stop();
            dnsServer3.stop();
            if (resolver != null) {
                resolver.close();
            }
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does testAllNameServers() do?
testAllNameServers() is a function in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java.
Where is testAllNameServers() defined?
testAllNameServers() is defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java at line 3718.
What does testAllNameServers() call?
testAllNameServers() calls 3 function(s): assertResolvedAddress, get, resolve.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free