aboutsummaryrefslogtreecommitdiff
path: root/tests/multi_client.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-15 23:33:22 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-15 23:33:23 +0300
commit7767f3ed6453ae573d7414d31cfe982f99a73782 (patch)
tree5443c6889c129daafc059bc06505c8f5c767d3a0 /tests/multi_client.rs
parent8877eaa80cdffc89c8526e4ad06db21a445202c6 (diff)
test: wait for multi-client resize propagation
Diffstat (limited to 'tests/multi_client.rs')
-rw-r--r--tests/multi_client.rs23
1 files changed, 18 insertions, 5 deletions
diff --git a/tests/multi_client.rs b/tests/multi_client.rs
index f083f2c1..6e367eaf 100644
--- a/tests/multi_client.rs
+++ b/tests/multi_client.rs
@@ -802,13 +802,26 @@ fn multi_client_effective_size_shrinks_when_smaller_client_joins() {
let mut small = connect_raw_client(&client_socket, 80, 24);
assert!(wait_for_frame(&mut small, Duration::from_secs(2)));
- let with_small_size = read_pane_tty_size(&api_socket, &pane_id, Duration::from_secs(5));
+
+ let deadline = Instant::now() + Duration::from_secs(8);
+ let mut last_seen_size = None;
+ let mut size_with_small_client = None;
+ while Instant::now() < deadline {
+ if let Some(size) =
+ try_read_pane_tty_size(&api_socket, &pane_id, Duration::from_millis(400))
+ {
+ last_seen_size = Some(size);
+ if size.0 < large_only_size.0 && size.1 < large_only_size.1 {
+ size_with_small_client = Some(size);
+ break;
+ }
+ }
+ thread::sleep(Duration::from_millis(60));
+ }
assert!(
- with_small_size.0 < large_only_size.0 && with_small_size.1 < large_only_size.1,
- "effective pane size should shrink when smaller client joins: before={:?}, after={:?}",
- large_only_size,
- with_small_size
+ size_with_small_client.is_some(),
+ "effective pane size should shrink when smaller client joins: before={large_only_size:?}, last_seen={last_seen_size:?}"
);
cleanup_spawned_herdr(server, base);