From 4d3452ae2d756a6a34ef04134c340b8098b654a4 Mon Sep 17 00:00:00 2001 From: Leynos Date: Fri, 4 Jul 2025 22:52:15 +0100 Subject: [PATCH 1/2] Add test for disabled fairness --- tests/connection_actor.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/connection_actor.rs b/tests/connection_actor.rs index 6d9a0c80..e7dedd50 100644 --- a/tests/connection_actor.rs +++ b/tests/connection_actor.rs @@ -68,6 +68,32 @@ async fn fairness_yields_low_after_burst( assert_eq!(out, vec![1, 2, 99, 3, 4, 5]); } +#[rstest] +#[tokio::test] +async fn fairness_disabled_processes_all_high_first( + queues: (PushQueues, wireframe::push::PushHandle), + shutdown_token: CancellationToken, +) { + let (queues, handle) = queues; + let fairness = FairnessConfig { + max_high_before_low: 0, + time_slice: None, + }; + + for n in 1..=3 { + handle.push_high_priority(n).await.unwrap(); + } + handle.push_low_priority(4).await.unwrap(); + handle.push_low_priority(5).await.unwrap(); + + let mut actor: ConnectionActor<_, ()> = + ConnectionActor::new(queues, handle, None, shutdown_token); + actor.set_fairness(fairness); + let mut out = Vec::new(); + actor.run(&mut out).await.unwrap(); + assert_eq!(out, vec![1, 2, 3, 4, 5]); +} + #[rstest] #[tokio::test] async fn shutdown_signal_precedence( From 3dfbc027ba1bbb5f4efb39e27e01ff59af64af94 Mon Sep 17 00:00:00 2001 From: Leynos Date: Sat, 5 Jul 2025 00:04:07 +0100 Subject: [PATCH 2/2] Refine fairness disabled test messages --- tests/connection_actor.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/connection_actor.rs b/tests/connection_actor.rs index e7dedd50..e4095fc4 100644 --- a/tests/connection_actor.rs +++ b/tests/connection_actor.rs @@ -81,16 +81,23 @@ async fn fairness_disabled_processes_all_high_first( }; for n in 1..=3 { - handle.push_high_priority(n).await.unwrap(); + let message = format!("failed to push high-priority frame {n}"); + handle.push_high_priority(n).await.expect(&message); } - handle.push_low_priority(4).await.unwrap(); - handle.push_low_priority(5).await.unwrap(); + handle + .push_low_priority(4) + .await + .expect("failed to push low-priority frame 4"); + handle + .push_low_priority(5) + .await + .expect("failed to push low-priority frame 5"); let mut actor: ConnectionActor<_, ()> = ConnectionActor::new(queues, handle, None, shutdown_token); actor.set_fairness(fairness); let mut out = Vec::new(); - actor.run(&mut out).await.unwrap(); + actor.run(&mut out).await.expect("actor run failed"); assert_eq!(out, vec![1, 2, 3, 4, 5]); }