From 4f180ab3094120d88c426db2b42ba2dbb16e45f9 Mon Sep 17 00:00:00 2001 From: Luna Yao <40349250+ZnqbuZ@users.noreply.github.com> Date: Mon, 6 Apr 2026 04:37:19 +0200 Subject: [PATCH] move new_request to tests --- easytier/src/dns/tests.rs | 28 ++++++++++++++++++++++++++-- easytier/src/dns/zone.rs | 34 ++++++---------------------------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/easytier/src/dns/tests.rs b/easytier/src/dns/tests.rs index 634c357c..bec0a672 100644 --- a/easytier/src/dns/tests.rs +++ b/easytier/src/dns/tests.rs @@ -1,6 +1,6 @@ #![cfg(all(feature = "magic-dns", feature = "tun"))] -use std::net::{Ipv4Addr, SocketAddr}; +use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; use std::str::FromStr as _; use std::sync::Arc; use std::time::{Duration, Instant}; @@ -11,7 +11,12 @@ use hickory_proto::rr; use hickory_proto::runtime::TokioRuntimeProvider; use hickory_proto::udp::UdpClientStream; use tokio::sync::Notify; - +use hickory_proto::rr::{Name, RecordType}; +use hickory_server::server::Request; +use hickory_proto::op::{Message, MessageType, OpCode, Query}; +use hickory_proto::serialize::binary::{BinDecodable, BinEncodable, BinEncoder}; +use hickory_server::authority::MessageRequest; +use hickory_proto::xfer::Protocol; use crate::common::global_ctx::tests::get_mock_global_ctx; use crate::connector::udp_hole_punch::tests::replace_stun_info_collector; use crate::dns::node::DnsNode; @@ -141,3 +146,22 @@ pub async fn check_dns_record_missing(fake_ip: &Ipv4Addr, domain: &str) { let _ = background_task.await; assert!(response.answers().is_empty(), "{:?}", response.answers()); } + +pub fn new_request(name: &str, rtype: RecordType) -> anyhow::Result { + let mut query = Message::new(); + query.set_id(0); + query.set_message_type(MessageType::Query); + query.set_op_code(OpCode::Query); + query.set_recursion_desired(true); + query.add_query(Query::query(Name::from_ascii(name)?, rtype)); + + let mut request = Vec::new(); + let mut encoder = BinEncoder::new(&mut request); + query.emit(&mut encoder)?; + + Ok(Request::new( + MessageRequest::from_bytes(&request)?, + SocketAddrV4::new(Ipv4Addr::LOCALHOST, 0).into(), + Protocol::Udp, + )) +} \ No newline at end of file diff --git a/easytier/src/dns/zone.rs b/easytier/src/dns/zone.rs index bd6228e0..42cc51e4 100644 --- a/easytier/src/dns/zone.rs +++ b/easytier/src/dns/zone.rs @@ -167,21 +167,18 @@ mod tests { use crate::dns::config::DnsConfig; use crate::dns::utils::response::ResponseHandle; use hickory_client::client::{Client, ClientHandle}; - use hickory_proto::op::{Message, MessageType, OpCode, Query, ResponseCode}; + use hickory_proto::op::ResponseCode; use hickory_proto::rr::{rdata, DNSClass, Name, RData, Record, RecordType, RrsetRecords}; use hickory_proto::runtime::TokioRuntimeProvider; - use hickory_proto::serialize::binary::{BinDecodable, BinEncodable, BinEncoder}; use hickory_proto::udp::UdpClientStream; - use hickory_proto::xfer::Protocol; - use hickory_server::authority::{Catalog, MessageRequest}; - use hickory_server::server::Request; + use hickory_server::authority::Catalog; use hickory_server::ServerFuture; - use std::net::{Ipv4Addr, SocketAddrV4}; use std::str::FromStr; use std::time::Duration; use tokio::net::UdpSocket; use tokio::spawn; use tokio::time::timeout; + use crate::dns; impl Zone { // TODO: remove this @@ -239,25 +236,6 @@ mod tests { "#; - fn new_request(name: &str, rtype: RecordType) -> anyhow::Result { - let mut query = Message::new(); - query.set_id(0); - query.set_message_type(MessageType::Query); - query.set_op_code(OpCode::Query); - query.set_recursion_desired(true); - query.add_query(Query::query(Name::from_ascii(name)?, rtype)); - - let mut request = Vec::new(); - let mut encoder = BinEncoder::new(&mut request); - query.emit(&mut encoder)?; - - Ok(Request::new( - MessageRequest::from_bytes(&request)?, - SocketAddrV4::new(Ipv4Addr::LOCALHOST, 0).into(), - Protocol::Udp, - )) - } - #[tokio::test] async fn test_config() -> anyhow::Result<()> { log::tests::init(); @@ -347,7 +325,7 @@ mod tests { authorities.extend(zone.create_forward_authority().into_iter()); catalog.upsert(zone.origin.clone(), authorities); - let request = new_request("et.top.", RecordType::A)?; + let request = dns::tests::new_request("et.top.", RecordType::A)?; let response = ResponseHandle::new(512); let info = catalog.lookup(&request, None, response.clone()).await; @@ -359,14 +337,14 @@ mod tests { vec![Zone::system().create_forward_authority().unwrap()], ); - let request = new_request("example.com", RecordType::A)?; + let request = dns::tests::new_request("example.com", RecordType::A)?; let response = ResponseHandle::new(512); let info = catalog.lookup(&request, None, response.clone()).await; assert_eq!(info.response_code(), ResponseCode::NoError); - let request = new_request("example.invalid", RecordType::A)?; + let request = dns::tests::new_request("example.invalid", RecordType::A)?; let response = ResponseHandle::new(512); let info = catalog.lookup(&request, None, response.clone()).await;