diff --git a/packages/conformance-tests/src/name_server.rs b/packages/conformance-tests/src/name_server.rs index c7c01a74..a2e4ef2b 100644 --- a/packages/conformance-tests/src/name_server.rs +++ b/packages/conformance-tests/src/name_server.rs @@ -1 +1,2 @@ mod rfc4035; +mod scenarios; diff --git a/packages/conformance-tests/src/name_server/scenarios.rs b/packages/conformance-tests/src/name_server/scenarios.rs new file mode 100644 index 00000000..17578ad7 --- /dev/null +++ b/packages/conformance-tests/src/name_server/scenarios.rs @@ -0,0 +1,23 @@ +use dns_test::client::{Client, DigSettings}; +use dns_test::name_server::NameServer; +use dns_test::record::RecordType; +use dns_test::{Network, Result, FQDN}; + +#[test] +fn authoritative_answer() -> Result<()> { + let network = &Network::new()?; + let ns = NameServer::new(&dns_test::subject(), FQDN::ROOT, network)?.start()?; + + let client = Client::new(network)?; + let ans = client.dig( + DigSettings::default(), + ns.ipv4_addr(), + RecordType::SOA, + &FQDN::ROOT, + )?; + + assert!(ans.status.is_noerror()); + assert!(ans.flags.authoritative_answer); + + Ok(()) +}