0.3.5-alpha.2.fix.1

This commit is contained in:
2026-09-21 22:40:28 +02:00
parent 0077ea8b4d
commit 5b7939cbd8
5 changed files with 112 additions and 9 deletions

View File

@@ -1,10 +1,20 @@
// file: crates/common/game-realtime-webtransport-lib/tests/establishment.rs
// version: 1
// version: 2
//! Deterministic native loopback proof for WebTransport session establishment and SHA-256 pinning.
const TEST_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(5);
fn normalized_socket_addr(value: std::net::SocketAddr) -> std::net::SocketAddr {
match value {
std::net::SocketAddr::V4(_) => return value,
std::net::SocketAddr::V6(ipv6) => match ipv6.ip().to_ipv4_mapped() {
Some(ipv4) => return std::net::SocketAddr::new(std::net::IpAddr::V4(ipv4), ipv6.port()),
None => return std::net::SocketAddr::V6(ipv6),
},
}
}
#[tokio::test(flavor = "current_thread")]
async fn pinned_client_and_server_establish_a_loopback_session() {
let identity = match game_realtime_webtransport_lib::WebTransportServerIdentity::generate_loopback() {
@@ -34,7 +44,7 @@ async fn pinned_client_and_server_establish_a_loopback_session() {
};
assert_eq!(client_session.request_url(), Some(endpoint.as_str()));
assert_eq!(server_session.request_url(), Some(endpoint.as_str()));
assert_eq!(client_session.remote_addr(), listener.local_addr());
assert_eq!(normalized_socket_addr(client_session.remote_addr()), normalized_socket_addr(listener.local_addr()));
}
#[tokio::test(flavor = "current_thread")]