From b5b6ecc69ee44430f79d45adf81e328e91f5578d Mon Sep 17 00:00:00 2001 From: Nils Andreas Svee Date: Sun, 3 May 2026 21:30:19 +0700 Subject: [PATCH] refactor(test): extract RTT processing verification to helper function --- crates/irtt-client/tests/m8_compat.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/crates/irtt-client/tests/m8_compat.rs b/crates/irtt-client/tests/m8_compat.rs index 001b96a..3e0d9f3 100644 --- a/crates/irtt-client/tests/m8_compat.rs +++ b/crates/irtt-client/tests/m8_compat.rs @@ -1,5 +1,7 @@ mod support; +use std::time::Duration; + use irtt_client::{ Client, ClientConfig, ClientError, ClientEvent, OneWayDelaySample, ReceivedStatsSample, RttSample, ServerTiming, @@ -78,8 +80,7 @@ fn timestamp_modes_drive_reply_event_timing_fields() { StampAt::Both => { assert_timing_fields(reply.server_timing, true, true, false, false, true, true); assert_one_way_presence(reply.one_way, true, true); - assert!(reply.rtt.adjusted.is_some()); - assert!(reply.rtt.effective <= reply.rtt.raw); + assert_processing_subtracted(reply); } StampAt::Midpoint => { assert_timing_fields(reply.server_timing, false, false, true, true, false, false); @@ -113,8 +114,7 @@ fn clock_modes_drive_reply_event_clock_fields() { assert_one_way_presence(reply.one_way, true, true); } } - assert!(reply.rtt.adjusted.is_some()); - assert!(reply.rtt.effective <= reply.rtt.raw); + assert_processing_subtracted(reply); } } @@ -128,8 +128,7 @@ fn rich_mode_exposes_stats_server_timing_and_adjusted_rtt() { assert_received_stats(reply.received_stats, Some(RECV_COUNT), Some(RECV_WINDOW)); assert_timing_fields(reply.server_timing, true, true, false, false, true, true); assert_one_way_presence(reply.one_way, true, true); - assert!(reply.rtt.adjusted.is_some()); - assert!(reply.rtt.effective <= reply.rtt.raw); + assert_processing_subtracted(reply); } #[test] @@ -348,6 +347,14 @@ fn assert_timing_fields( ); } +fn assert_processing_subtracted(reply: ReplyView<'_>) { + let processing = reply.server_timing.unwrap().processing.unwrap(); + assert_eq!(processing, Duration::from_nanos(1)); + let adjusted = reply.rtt.adjusted.unwrap(); + assert_eq!(reply.rtt.effective, adjusted); + assert!(adjusted < reply.rtt.raw); +} + fn assert_one_way_presence( sample: Option<&OneWayDelaySample>, client_to_server: bool,