Skip to content

Commit 4d302af

Browse files
committed
test: add inner lookup cache test cases
1 parent 66c04f8 commit 4d302af

File tree

1 file changed

+37
-4
lines changed

1 file changed

+37
-4
lines changed

src/async_resolver.rs

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -524,9 +524,9 @@ mod async_resolver_test {
524524
}
525525
}
526526

527-
/// Test lookup cache
527+
/// Test inner lookup cache
528528
#[tokio::test]
529-
async fn lookup_cache() {
529+
async fn inner_lookup_cache_available() {
530530
let mut resolver = AsyncResolver::new(ResolverConfig::default());
531531
resolver.cache.set_max_size(1);
532532

@@ -537,7 +537,40 @@ mod async_resolver_test {
537537

538538
resolver.cache.add(domain_name, resource_record);
539539

540-
let _response = resolver.lookup("example.com", "UDP", "A","IN").await;
540+
let domain_name = DomainName::new_from_string("example.com".to_string());
541+
let response = resolver.inner_lookup(domain_name, Qtype::A, Qclass::IN).await;
542+
543+
if let Ok(msg) = response {
544+
assert_eq!(msg.get_header().get_aa(), false);
545+
} else {
546+
panic!("No response from cache");
547+
}
548+
}
549+
550+
/// Test inner lookup without cache
551+
#[tokio::test]
552+
async fn inner_lookup_with_no_cache() {
553+
let mut config = ResolverConfig::default();
554+
config.set_cache_enabled(false);
555+
556+
let mut resolver = AsyncResolver::new(config);
557+
resolver.cache.set_max_size(1);
558+
559+
let domain_name = DomainName::new_from_string("example.com".to_string());
560+
let a_rdata = ARdata::new_from_addr(IpAddr::from_str("93.184.216.34").unwrap());
561+
let a_rdata = Rdata::A(a_rdata);
562+
let resource_record = ResourceRecord::new(a_rdata);
563+
564+
resolver.cache.add(domain_name, resource_record);
565+
566+
let domain_name = DomainName::new_from_string("example.com".to_string());
567+
let response = resolver.inner_lookup(domain_name, Qtype::A, Qclass::IN).await;
568+
569+
if let Ok(msg) = response {
570+
assert_eq!(msg.get_header().get_aa(), false);
571+
} else {
572+
panic!("No response from nameserver");
573+
}
541574
}
542575

543576
/// Test cache data
@@ -546,7 +579,7 @@ mod async_resolver_test {
546579
let mut resolver = AsyncResolver::new(ResolverConfig::default());
547580
resolver.cache.set_max_size(1);
548581
assert_eq!(resolver.cache.is_empty(), true);
549-
let _response = resolver.lookup("example.com", "UDP", "A","IN").await;
582+
let _response = resolver.lookup("example.com", "UDP", "A", "IN").await;
550583
assert_eq!(resolver.cache.is_cached(DomainName::new_from_str("example.com"), Rtype::A), true);
551584

552585
// TODO: Test special cases from RFC

0 commit comments

Comments
 (0)