1 file changed
@@ -201,3 +201,29 @@ impl fmt::Debug for SockAddr { | |||
| 201 | 201 | .finish() | |
| 202 | 202 | } | |
| 203 | 203 | } | |
| 204 | + | ||
| 205 | + #[cfg(test)] | ||
| 206 | + mod tests { | ||
| 207 | + use super::*; | ||
| 208 | + use std::net::{Ipv4Addr, Ipv6Addr}; | ||
| 209 | + | ||
| 210 | + #[test] | ||
| 211 | + fn conversion_v4() { | ||
| 212 | + let addr = SocketAddrV4::new(Ipv4Addr::new(1, 2, 3, 4), 9876); | ||
| 213 | + let sockaddr = SockAddr::from(addr); | ||
| 214 | + assert_eq!(sockaddr.family(), AF_INET as sa_family_t); | ||
| 215 | + assert!(sockaddr.as_inet6().is_none()); | ||
| 216 | + assert_eq!(sockaddr.as_inet(), Some(addr)); | ||
| 217 | + assert_eq!(sockaddr.as_std(), Some(SocketAddr::V4(addr))); | ||
| 218 | + } | ||
| 219 | + | ||
| 220 | + #[test] | ||
| 221 | + fn conversion_v6() { | ||
| 222 | + let addr = SocketAddrV6::new(Ipv6Addr::new(1, 2, 3, 4, 5, 6, 7, 8), 9876, 11, 12); | ||
| 223 | + let sockaddr = SockAddr::from(addr); | ||
| 224 | + assert_eq!(sockaddr.family(), AF_INET6 as sa_family_t); | ||
| 225 | + assert!(sockaddr.as_inet().is_none()); | ||
| 226 | + assert_eq!(sockaddr.as_inet6(), Some(addr)); | ||
| 227 | + assert_eq!(sockaddr.as_std(), Some(SocketAddr::V6(addr))); | ||
| 228 | + } | ||
| 229 | + } | ||
0 commit comments