From 7742c79d44150abef1a85ad4f13d638be4f0dda8 Mon Sep 17 00:00:00 2001 From: Adam Perry Date: Tue, 16 Jun 2026 21:37:46 +0000 Subject: [PATCH] unified-exec: test relative workdir process execution (#28132) --- codex-rs/core/tests/suite/unified_exec.rs | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/codex-rs/core/tests/suite/unified_exec.rs b/codex-rs/core/tests/suite/unified_exec.rs index 7ac0774316..761625046d 100644 --- a/codex-rs/core/tests/suite/unified_exec.rs +++ b/codex-rs/core/tests/suite/unified_exec.rs @@ -471,11 +471,18 @@ async fn unified_exec_resolves_relative_workdir() -> Result<()> { let workdir_rel = std::path::PathBuf::from("uexec_relative_workdir"); let workdir = create_workspace_directory(&test, &workdir_rel).await?; + let marker_uri = PathUri::from_path(workdir.join("cwd-marker.txt"))?; + test.fs() + .write_file( + &marker_uri, + b"resolved-relative-workdir".to_vec(), + /*sandbox*/ None, + ) + .await?; let call_id = "uexec-workdir-relative"; let args = json!({ - "cmd": "pwd", - "yield_time_ms": 250, + "cmd": "cat cwd-marker.txt", "workdir": workdir_rel.to_string_lossy().to_string(), }); @@ -491,7 +498,7 @@ async fn unified_exec_resolves_relative_workdir() -> Result<()> { ev_completed("resp-2"), ]), ]; - mount_sse_sequence(&server, responses).await; + let request_log = mount_sse_sequence(&server, responses).await; submit_unified_exec_turn( &test, @@ -517,6 +524,15 @@ async fn unified_exec_resolves_relative_workdir() -> Result<()> { }) .await; + let output = request_log + .function_call_output_text(call_id) + .expect("missing relative workdir exec output"); + let output = parse_unified_exec_output(&output)?; + assert_eq!( + (output.exit_code, output.output), + (Some(0), "resolved-relative-workdir".to_string()) + ); + Ok(()) }