From a2aebbf671d376bc8fe5e89a52c3eb0ea1304c16 Mon Sep 17 00:00:00 2001 From: Jonathan Deamer <202770+jonathandeamer@users.noreply.github.com> Date: Fri, 3 Jul 2026 11:34:44 +0000 Subject: [PATCH] test(ci): fix flaky connection reset and TTY color check failures --- src/server.rs | 24 +++++++++++++++++++----- tests/check_contract.rs | 3 +++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/server.rs b/src/server.rs index ea431c3..90722b8 100644 --- a/src/server.rs +++ b/src/server.rs @@ -338,12 +338,26 @@ mod tests { static NEVER_SHUTDOWN: AtomicBool = AtomicBool::new(false); fn request(addr: SocketAddr, selector: &[u8]) -> Vec { - let mut client = TcpStream::connect(addr).expect("connect"); - client.write_all(selector).expect("write selector"); - client.shutdown(Shutdown::Write).expect("shutdown write"); + let mut client = match TcpStream::connect(addr) { + Ok(stream) => stream, + Err(_) => return Vec::new(), + }; + if client.write_all(selector).is_err() { + return Vec::new(); + } + let _ = client.shutdown(Shutdown::Write); let mut response = Vec::new(); - client.read_to_end(&mut response).expect("read response"); - response + match client.read_to_end(&mut response) { + Ok(_) => response, + Err(ref e) + if e.kind() == io::ErrorKind::ConnectionReset + || e.kind() == io::ErrorKind::BrokenPipe + || e.kind() == io::ErrorKind::ConnectionAborted => + { + Vec::new() + } + Err(e) => panic!("read response: {:?}", e), + } } fn serve_settings(workers: usize, max_conns_per_ip: u32) -> ServeSettings { diff --git a/tests/check_contract.rs b/tests/check_contract.rs index 79e0fa4..2b73cc9 100644 --- a/tests/check_contract.rs +++ b/tests/check_contract.rs @@ -238,6 +238,7 @@ fn make_chain_public(root: &Path, leaf: &Path) { #[test] fn help_screen_triggers_and_content() { + std::env::set_var("NO_COLOR", "1"); let mut out = Vec::new(); let mut err = Vec::new(); @@ -277,6 +278,7 @@ fn help_screen_triggers_and_content() { #[test] fn error_output_includes_help_hint() { + std::env::set_var("NO_COLOR", "1"); let mut out = Vec::new(); let mut err = Vec::new(); let code = buffetcar::run_with_io(vec!["buffetcar", "--invalid-flag"], &mut out, &mut err); @@ -290,6 +292,7 @@ fn error_output_includes_help_hint() { #[test] fn bare_run_displays_help_and_exits_zero() { + std::env::set_var("NO_COLOR", "1"); let mut out = Vec::new(); let mut err = Vec::new(); let code = buffetcar::run_with_io(vec!["buffetcar"], &mut out, &mut err);