xref: /webrtc/util/src/vnet/resolver/resolver_test.rs (revision 7bd9f39d)
1 use super::*;
2 
3 const DEMO_IP: &str = "1.2.3.4";
4 
5 #[tokio::test]
test_resolver_standalone() -> Result<()>6 async fn test_resolver_standalone() -> Result<()> {
7     let mut r = Resolver::new();
8 
9     // should have localhost by default
10     let name = "localhost";
11     let ip_addr = "127.0.0.1";
12     let ip = IpAddr::from_str(ip_addr)?;
13 
14     if let Some(resolved) = r.lookup(name.to_owned()).await {
15         assert_eq!(resolved, ip, "should match");
16     } else {
17         panic!("should Some, but got None");
18     }
19 
20     let name = "abc.com";
21     let ip_addr = DEMO_IP;
22     let ip = IpAddr::from_str(ip_addr)?;
23     log::debug!("adding {} {}", name, ip_addr);
24 
25     r.add_host(name.to_owned(), ip_addr.to_owned())?;
26 
27     if let Some(resolved) = r.lookup(name.to_owned()).await {
28         assert_eq!(resolved, ip, "should match");
29     } else {
30         panic!("should Some, but got None");
31     }
32 
33     Ok(())
34 }
35 
36 #[tokio::test]
test_resolver_cascaded() -> Result<()>37 async fn test_resolver_cascaded() -> Result<()> {
38     let mut r0 = Resolver::new();
39 
40     let name0 = "abc.com";
41     let ip_addr0 = DEMO_IP;
42     let ip0 = IpAddr::from_str(ip_addr0)?;
43     r0.add_host(name0.to_owned(), ip_addr0.to_owned())?;
44 
45     let mut r1 = Resolver::new();
46 
47     let name1 = "myserver.local";
48     let ip_addr1 = "10.1.2.5";
49     let ip1 = IpAddr::from_str(ip_addr1)?;
50     r1.add_host(name1.to_owned(), ip_addr1.to_owned())?;
51 
52     r1.set_parent(Arc::new(Mutex::new(r0)));
53 
54     if let Some(resolved) = r1.lookup(name0.to_owned()).await {
55         assert_eq!(resolved, ip0, "should match");
56     } else {
57         panic!("should Some, but got None");
58     }
59 
60     if let Some(resolved) = r1.lookup(name1.to_owned()).await {
61         assert_eq!(resolved, ip1, "should match");
62     } else {
63         panic!("should Some, but got None");
64     }
65 
66     // should fail if the name does not exist
67     let result = r1.lookup("bad.com".to_owned()).await;
68     assert!(result.is_none(), "should fail");
69 
70     Ok(())
71 }
72