diff --git a/quinn-proto/src/tests/mod.rs b/quinn-proto/src/tests/mod.rs index 34eade435..21eb9a050 100644 --- a/quinn-proto/src/tests/mod.rs +++ b/quinn-proto/src/tests/mod.rs @@ -2212,8 +2212,8 @@ fn packet_splitting_not_necessary_after_higher_mtu_discovered() { #[test] fn single_ack_eliciting_packet_triggers_ack_after_delay() { let _guard = subscribe(); - let mut pair = Pair::default(); - let (client_ch, _) = pair.connect(); + let mut pair = Pair::default_with_deterministic_pns(); + let (client_ch, _) = pair.connect_with(client_config_with_deterministic_pns()); pair.drive(); let stats_after_connect = pair.client_conn_mut(client_ch).stats(); @@ -2275,8 +2275,8 @@ fn single_ack_eliciting_packet_triggers_ack_after_delay() { #[test] fn immediate_ack_triggers_ack() { let _guard = subscribe(); - let mut pair = Pair::default(); - let (client_ch, _) = pair.connect(); + let mut pair = Pair::default_with_deterministic_pns(); + let (client_ch, _) = pair.connect_with(client_config_with_deterministic_pns()); pair.drive(); let acks_after_connect = pair.client_conn_mut(client_ch).stats().frame_rx.acks; @@ -2294,8 +2294,8 @@ fn immediate_ack_triggers_ack() { #[test] fn out_of_order_ack_eliciting_packet_triggers_ack() { let _guard = subscribe(); - let mut pair = Pair::default(); - let (client_ch, server_ch) = pair.connect(); + let mut pair = Pair::default_with_deterministic_pns(); + let (client_ch, server_ch) = pair.connect_with(client_config_with_deterministic_pns()); pair.drive(); let default_mtu = pair.mtu; @@ -2352,8 +2352,8 @@ fn out_of_order_ack_eliciting_packet_triggers_ack() { #[test] fn single_ack_eliciting_packet_with_ce_bit_triggers_immediate_ack() { let _guard = subscribe(); - let mut pair = Pair::default(); - let (client_ch, _) = pair.connect(); + let mut pair = Pair::default_with_deterministic_pns(); + let (client_ch, _) = pair.connect_with(client_config_with_deterministic_pns()); pair.drive(); let stats_after_connect = pair.client_conn_mut(client_ch).stats(); @@ -2388,7 +2388,7 @@ fn single_ack_eliciting_packet_with_ce_bit_triggers_immediate_ack() { } fn setup_ack_frequency_test(max_ack_delay: Duration) -> (Pair, ConnectionHandle, ConnectionHandle) { - let mut client_config = client_config(); + let mut client_config = client_config_with_deterministic_pns(); let mut ack_freq_config = AckFrequencyConfig::default(); ack_freq_config .ack_eliciting_threshold(10u32.into()) @@ -2398,7 +2398,7 @@ fn setup_ack_frequency_test(max_ack_delay: Duration) -> (Pair, ConnectionHandle, .ack_frequency_config(Some(ack_freq_config)) .mtu_discovery_config(None); // To keep traffic cleaner - let mut pair = Pair::default(); + let mut pair = Pair::default_with_deterministic_pns(); pair.latency = Duration::from_millis(10); // Need latency to avoid an RTT = 0 let (client_ch, server_ch) = pair.connect_with(client_config); pair.drive(); diff --git a/quinn-proto/src/tests/util.rs b/quinn-proto/src/tests/util.rs index 1914570a9..4e38e4a81 100644 --- a/quinn-proto/src/tests/util.rs +++ b/quinn-proto/src/tests/util.rs @@ -37,6 +37,14 @@ pub(super) struct Pair { } impl Pair { + pub(super) fn default_with_deterministic_pns() -> Self { + let mut cfg = server_config(); + let mut transport = TransportConfig::default(); + transport.deterministic_packet_numbers(true); + cfg.transport = Arc::new(transport); + Self::new(Default::default(), cfg) + } + pub(super) fn new(endpoint_config: Arc, server_config: ServerConfig) -> Self { let server = Endpoint::new(endpoint_config.clone(), Some(Arc::new(server_config)), true); let client = Endpoint::new(endpoint_config, None, true); @@ -466,6 +474,14 @@ pub(super) fn client_config() -> ClientConfig { ClientConfig::new(Arc::new(client_crypto())) } +pub(super) fn client_config_with_deterministic_pns() -> ClientConfig { + let mut cfg = ClientConfig::new(Arc::new(client_crypto())); + let mut transport = TransportConfig::default(); + transport.deterministic_packet_numbers(true); + cfg.transport = Arc::new(transport); + cfg +} + pub(super) fn client_config_with_certs(certs: Vec) -> ClientConfig { ClientConfig::new(Arc::new(client_crypto_with_certs(certs))) }