use super::Context;
use std::net::{Ipv4Addr, Ipv6Addr};
#[tokio::test]
async fn unspecified_ipv4_test() {
let context = Context::new().await;
let mut acceptor_addr = context.acceptor_addr();
acceptor_addr.set_ip(Ipv4Addr::UNSPECIFIED.into());
let (client, server) = context.pair_with(acceptor_addr).await;
if !context.protocol().is_udp() {
assert_eq!(client.peer_addr().unwrap().ip(), Ipv4Addr::LOCALHOST);
assert_eq!(server.peer_addr().unwrap().ip(), Ipv4Addr::LOCALHOST);
}
}
#[tokio::test]
async fn unspecified_ipv6_test() {
let context = Context::bind("[::1]:0".parse().unwrap()).await;
let mut acceptor_addr = context.acceptor_addr();
acceptor_addr.set_ip(Ipv6Addr::UNSPECIFIED.into());
let (client, server) = context.pair_with(acceptor_addr).await;
if !context.protocol().is_udp() {
assert_eq!(client.peer_addr().unwrap().ip(), Ipv6Addr::LOCALHOST);
assert_eq!(server.peer_addr().unwrap().ip(), Ipv6Addr::LOCALHOST);
}
}
#[tokio::test]
#[ignore = "dual stack isn't currently implemented"]
async fn dual_stack_test() {
let context = Context::bind("[::1]:0".parse().unwrap()).await;
let (_client, _server) = context.pair().await;
let mut acceptor_addr = context.acceptor_addr();
acceptor_addr.set_ip(Ipv4Addr::LOCALHOST.into());
let (_client, _server) = context.pair_with(acceptor_addr).await;
}