diff options
Diffstat (limited to 'tests/client_mode.rs')
| -rw-r--r-- | tests/client_mode.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/tests/client_mode.rs b/tests/client_mode.rs index 016d220e..21978d51 100644 --- a/tests/client_mode.rs +++ b/tests/client_mode.rs @@ -266,9 +266,9 @@ fn read_next_frame_payload(stream: &mut UnixStream, timeout: Duration) -> Result Err("timed out waiting for Frame message".into()) } -fn frame_contains_text(frame: &FrameWire, needle: &str) -> bool { +fn frame_text(frame: &FrameWire) -> String { if frame.cells.is_empty() { - return false; + return String::new(); } let width = frame.width.max(1) as usize; @@ -285,7 +285,7 @@ fn frame_contains_text(frame: &FrameWire, needle: &str) -> bool { let _ = (cursor.x, cursor.y, cursor.visible, cursor.shape); } - text.contains(needle) + text } // --------------------------------------------------------------------------- @@ -391,11 +391,15 @@ fn client_sees_headless_startup_config_diagnostic() { .unwrap(); let deadline = Instant::now() + Duration::from_secs(5); let mut found_diagnostic = false; + let mut last_frame_text = String::new(); while Instant::now() < deadline { match read_server_message(&mut stream) { Ok((1, payload)) => { let frame = decode_frame_payload(&payload).expect("decode frame"); - if frame_contains_text(&frame, "config parse error") { + last_frame_text = frame_text(&frame); + if last_frame_text.contains("config.toml") + && last_frame_text.contains("herdr config check") + { found_diagnostic = true; break; } @@ -407,7 +411,7 @@ fn client_sees_headless_startup_config_diagnostic() { assert!( found_diagnostic, - "attached client should see startup config parse diagnostic" + "attached client should see startup config parse diagnostic; last frame:\n{last_frame_text}" ); cleanup_spawned_herdr(spawned, base); |
