• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #![cfg(all(feature = "full", not(target_os = "wasi")))] // Wasi does not support direct socket operations
2 
3 use tokio::net;
4 use tokio_test::assert_ok;
5 
6 use std::io;
7 use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr};
8 
9 #[tokio::test]
lookup_socket_addr()10 async fn lookup_socket_addr() {
11     let addr: SocketAddr = "127.0.0.1:8000".parse().unwrap();
12 
13     let actual = assert_ok!(net::lookup_host(addr).await).collect::<Vec<_>>();
14     assert_eq!(vec![addr], actual);
15 }
16 
17 #[tokio::test]
lookup_str_socket_addr()18 async fn lookup_str_socket_addr() {
19     let addr: SocketAddr = "127.0.0.1:8000".parse().unwrap();
20 
21     let actual = assert_ok!(net::lookup_host("127.0.0.1:8000").await).collect::<Vec<_>>();
22     assert_eq!(vec![addr], actual);
23 }
24 
25 #[tokio::test]
resolve_dns() -> io::Result<()>26 async fn resolve_dns() -> io::Result<()> {
27     let mut hosts = net::lookup_host("localhost:3000").await?;
28     let host = hosts.next().unwrap();
29 
30     let expected = if host.is_ipv4() {
31         SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 3000)
32     } else {
33         SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)), 3000)
34     };
35     assert_eq!(host, expected);
36 
37     Ok(())
38 }
39