From 1130e99095a50460d13bb79a32792a2e12b7f32f Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 6 Oct 2026 15:13:58 -0400 Subject: [PATCH] Tests: the snapshot-determinism test asserts both runs settled before comparing pixels snapshot() ignored settle()'s result, so on a loaded machine (seen on the FreeBSD VM and under local load) a timed-out settle compared half-rendered frames and failed as a misleading pixel diff. The test now settles explicitly with a 300 s budget, asserts it settled, then paints. Co-Authored-By: Claude Opus 5.5 --- crates/ui-egui/src/headless.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/ui-egui/src/headless.rs b/crates/ui-egui/src/headless.rs index 52cb96f95..a78fe6617 100644 --- a/crates/ui-egui/src/headless.rs +++ b/crates/ui-egui/src/headless.rs @@ -286,7 +286,10 @@ mod tests { let mut h = demo([900.0, 600.0]); let r = h.request("ui.set", json!({"view": "detail"}), Duration::from_secs(10)); assert_eq!(r["ok"], true, "{r}"); - h.snapshot(SETTLE) + // Compare only fully settled frames: a timed-out settle would compare half-rendered + // pictures and fail as a misleading pixel diff (seen on loaded CI machines). + assert!(h.settle(Duration::from_secs(300)), "the demo detail view did not settle within 300 s"); + h.paint() }; let (a, b) = (shot(), shot()); assert_eq!(a.size, b.size);