From 4c3179f2e2863ddaccecbf2cbb2069134f29334b Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 24 Mar 2026 14:36:08 -0700 Subject: [PATCH] Fix flaky terminal test for position / cell conversion (#52351) This PR fixes test flakiness introduced in https://github.com/zed-industries/zed/pull/52111 The flakiness was because the test was using its own RNG, rather than using gpui's built-in support for consistently-seeded RNGs in tests. The fix was just to adjust the test to use the same logic for computing row and column count as was introduced in the above PR. Release Notes: - N/A --- crates/terminal/src/terminal.rs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/crates/terminal/src/terminal.rs b/crates/terminal/src/terminal.rs index c85d849cb034f99367f5cd8e6f1a978e4efd7ae3..3e7a0c77d265b9eea4c2ab90caa4f0818340fdd8 100644 --- a/crates/terminal/src/terminal.rs +++ b/crates/terminal/src/terminal.rs @@ -2556,7 +2556,7 @@ mod tests { Point, TestAppContext, bounds, point, size, }; use parking_lot::Mutex; - use rand::{Rng, distr, rngs::ThreadRng}; + use rand::{Rng, distr, rngs::StdRng}; use smol::channel::Receiver; use task::{Shell, ShellBuilder}; @@ -2877,9 +2877,8 @@ mod tests { } } - #[test] - fn test_mouse_to_cell_test() { - let mut rng = rand::rng(); + #[gpui::test] + fn test_mouse_to_cell_test(mut rng: StdRng) { const ITERATIONS: usize = 10; const PRECISION: usize = 1000; @@ -2927,10 +2926,8 @@ mod tests { } } - #[test] - fn test_mouse_to_cell_clamp() { - let mut rng = rand::rng(); - + #[gpui::test] + fn test_mouse_to_cell_clamp(mut rng: StdRng) { let size = crate::TerminalBounds { cell_width: Pixels::from(10.), line_height: Pixels::from(10.), @@ -2961,12 +2958,12 @@ mod tests { ); } - fn get_cells(size: TerminalBounds, rng: &mut ThreadRng) -> Vec> { + fn get_cells(size: TerminalBounds, rng: &mut StdRng) -> Vec> { let mut cells = Vec::new(); - for _ in 0..((size.height() / size.line_height()) as usize) { + for _ in 0..size.num_lines() { let mut row_vec = Vec::new(); - for _ in 0..((size.width() / size.cell_width()) as usize) { + for _ in 0..size.num_columns() { let cell_char = rng.sample(distr::Alphanumeric) as char; row_vec.push(cell_char) }