From 9f8d3c14ce84c5f4bfd96bd2d723dbb337e72418 Mon Sep 17 00:00:00 2001 From: pakrym-oai Date: Tue, 13 Jan 2026 15:09:59 -0800 Subject: [PATCH] Fix flakiness in WebSocket tests (#9169) The connection was being added to the list after the WebSocket response was sent. So the test can sometimes race and observe connections before the list was updated. After this change, connection and request is added to the list before the response is sent. --- codex-rs/core/tests/common/responses.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/codex-rs/core/tests/common/responses.rs b/codex-rs/core/tests/common/responses.rs index 8f698ed28..f8fbcfff5 100644 --- a/codex-rs/core/tests/common/responses.rs +++ b/codex-rs/core/tests/common/responses.rs @@ -821,13 +821,20 @@ pub async fn start_websocket_server(connections: Vec>>) -> WebSoc continue; }; - let mut connection_log = Vec::new(); + let connection_index = { + let mut log = requests.lock().unwrap(); + log.push(Vec::new()); + log.len() - 1 + }; for request_events in connection_requests { let Some(Ok(message)) = ws_stream.next().await else { break; }; if let Some(body) = parse_ws_request_body(message) { - connection_log.push(WebSocketRequest { body }); + let mut log = requests.lock().unwrap(); + if let Some(connection_log) = log.get_mut(connection_index) { + connection_log.push(WebSocketRequest { body }); + } } for event in &request_events { @@ -840,7 +847,6 @@ pub async fn start_websocket_server(connections: Vec>>) -> WebSoc } } - requests.lock().unwrap().push(connection_log); let _ = ws_stream.close(None).await; if connections.lock().unwrap().is_empty() {