diff --git a/src/ui/scm/graph.rs b/src/ui/scm/graph.rs index 99cdcb32..c0e4ea87 100644 --- a/src/ui/scm/graph.rs +++ b/src/ui/scm/graph.rs @@ -2286,9 +2286,16 @@ mod render_idle_gpui_tests { )); } - let (app, mut vcx, _pane) = test_window::harness_with_pane(cx); + // The daemon end is held for the life of the test, the way every other + // panel harness holds it. `&mut { _pane }` dropped it on the spot: on + // Unix a closed `socketpair` half still delivers the `Cwd` written a + // moment earlier, but on Windows the link is a loopback `TcpStream`, + // and closing one with the pane's own `Resize` sitting unread on it is + // an abortive close — the `Cwd` goes with the connection, and the test + // spends its 30s deadline waiting for a cwd that was thrown away. + let (app, mut vcx, mut pane) = test_window::harness_with_pane(cx); crate::daemon::protocol::DaemonMsg::Cwd(root.clone()) - .encode(&mut { _pane }) + .encode(&mut pane) .expect("the pane's socket takes the cwd"); app.update_in(&mut vcx, |app, _, cx| { app.right_panel_visible = true;