testCNameCached() — netty Function Reference
Architecture documentation for the testCNameCached() function in DnsNameResolverTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 96b415a8_680a_71b7_4900_29d1fe02c25e["testCNameCached()"] b6215f36_0afe_a284_a3fd_3999e90a8e97["DnsNameResolverTest"] 96b415a8_680a_71b7_4900_29d1fe02c25e -->|defined in| b6215f36_0afe_a284_a3fd_3999e90a8e97 f68a278a_d1e5_7598_a2d3_c261c81029bc["get()"] 96b415a8_680a_71b7_4900_29d1fe02c25e -->|calls| f68a278a_d1e5_7598_a2d3_c261c81029bc 320a7bb7_1770_5812_3b9d_752bd44edf24["cache()"] 96b415a8_680a_71b7_4900_29d1fe02c25e -->|calls| 320a7bb7_1770_5812_3b9d_752bd44edf24 e0db6033_0923_3a43_22a1_11714277de6c["clear()"] 96b415a8_680a_71b7_4900_29d1fe02c25e -->|calls| e0db6033_0923_3a43_22a1_11714277de6c style 96b415a8_680a_71b7_4900_29d1fe02c25e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java lines 2885–2999
@ParameterizedTest
@EnumSource(DnsNameResolverChannelStrategy.class)
public void testCNameCached(DnsNameResolverChannelStrategy strategy) throws Exception {
final Map<String, String> cache = new ConcurrentHashMap<String, String>();
final AtomicInteger cnameQueries = new AtomicInteger();
final AtomicInteger aQueries = new AtomicInteger();
TestDnsServer dnsServer2 = new TestDnsServer(new RecordStore() {
@Override
public Set<ResourceRecord> getRecords(QuestionRecord question) {
if ("cname.netty.io".equals(question.getDomainName())) {
aQueries.incrementAndGet();
return Collections.<ResourceRecord>singleton(new TestDnsServer.TestResourceRecord(
question.getDomainName(), RecordType.A,
Collections.<String, Object>singletonMap(
DnsAttribute.IP_ADDRESS.toLowerCase(), "10.0.0.99")));
}
if ("x.netty.io".equals(question.getDomainName())) {
cnameQueries.incrementAndGet();
return Collections.<ResourceRecord>singleton(new TestDnsServer.TestResourceRecord(
question.getDomainName(), RecordType.CNAME,
Collections.<String, Object>singletonMap(
DnsAttribute.DOMAIN_NAME.toLowerCase(), "cname.netty.io")));
}
if ("y.netty.io".equals(question.getDomainName())) {
cnameQueries.incrementAndGet();
return Collections.<ResourceRecord>singleton(new TestDnsServer.TestResourceRecord(
question.getDomainName(), RecordType.CNAME,
Collections.<String, Object>singletonMap(
DnsAttribute.DOMAIN_NAME.toLowerCase(), "x.netty.io")));
}
return Collections.emptySet();
}
});
dnsServer2.start();
DnsNameResolver resolver = null;
try {
DnsNameResolverBuilder builder = newResolver(strategy)
.recursionDesired(true)
.resolvedAddressTypes(ResolvedAddressTypes.IPV4_ONLY)
.maxQueriesPerResolve(16)
.nameServerProvider(new SingletonDnsServerAddressStreamProvider(dnsServer2.localAddress()))
.resolveCache(NoopDnsCache.INSTANCE)
.cnameCache(new DnsCnameCache() {
@Override
public String get(String hostname) {
assertTrue(hostname.endsWith("."), hostname);
return cache.get(hostname);
}
@Override
public void cache(String hostname, String cname, long originalTtl, EventLoop loop) {
assertTrue(hostname.endsWith("."), hostname);
cache.put(hostname, cname);
}
@Override
public void clear() {
// NOOP
}
@Override
public boolean clear(String hostname) {
return false;
}
});
resolver = builder.build();
List<InetAddress> resolvedAddresses =
resolver.resolveAll("x.netty.io").syncUninterruptibly().getNow();
assertEquals(1, resolvedAddresses.size());
assertTrue(resolvedAddresses.contains(InetAddress.getByAddress(new byte[] { 10, 0, 0, 99 })));
assertEquals("cname.netty.io.", cache.get("x.netty.io."));
assertEquals(1, cnameQueries.get());
assertEquals(1, aQueries.get());
resolvedAddresses =
Domain
Subdomains
Source
Frequently Asked Questions
What does testCNameCached() do?
testCNameCached() is a function in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java.
Where is testCNameCached() defined?
testCNameCached() is defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java at line 2885.
What does testCNameCached() call?
testCNameCached() calls 3 function(s): cache, clear, get.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free