From 0916fe9ab09a52e885f4a4c2a886cc88aa61c7e8 Mon Sep 17 00:00:00 2001 From: pakrym-oai Date: Fri, 8 May 2026 01:19:08 -0700 Subject: [PATCH] Speed up app-server Windows timeout tests --- .../app-server/tests/suite/v2/thread_fork.rs | 2 +- .../app-server/tests/suite/v2/turn_start.rs | 57 +++++++++++++------ 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/codex-rs/app-server/tests/suite/v2/thread_fork.rs b/codex-rs/app-server/tests/suite/v2/thread_fork.rs index 3eb262bd2b..ca99037125 100644 --- a/codex-rs/app-server/tests/suite/v2/thread_fork.rs +++ b/codex-rs/app-server/tests/suite/v2/thread_fork.rs @@ -357,7 +357,7 @@ async fn thread_fork_can_exclude_turns_and_skip_restored_token_usage() -> Result assert!(thread.turns.is_empty()); let note = timeout( - DEFAULT_READ_TIMEOUT, + std::time::Duration::from_secs(2), mcp.read_stream_until_notification_message("thread/tokenUsage/updated"), ) .await; diff --git a/codex-rs/app-server/tests/suite/v2/turn_start.rs b/codex-rs/app-server/tests/suite/v2/turn_start.rs index e5c5c5adbb..17ea17c51e 100644 --- a/codex-rs/app-server/tests/suite/v2/turn_start.rs +++ b/codex-rs/app-server/tests/suite/v2/turn_start.rs @@ -1986,23 +1986,7 @@ async fn turn_start_updates_sandbox_and_cwd_between_turns_v2() -> Result<()> { #[tokio::test] async fn turn_start_resolves_sticky_thread_environments_and_turn_overrides() -> Result<()> { - let tmp = TempDir::new()?; - let codex_home = tmp.path().join("codex_home"); - std::fs::create_dir(&codex_home)?; - let workspace = tmp.path().join("workspace"); - std::fs::create_dir(&workspace)?; - - let server = create_mock_responses_server_repeating_assistant("done").await; - create_config_toml(&codex_home, &server.uri(), "never", &BTreeMap::default())?; - - let mut mcp = McpProcess::new_with_env( - &codex_home, - &[("CODEX_EXEC_SERVER_URL", Some("http://127.0.0.1:1"))], - ) - .await?; - timeout(DEFAULT_READ_TIMEOUT, mcp.initialize()).await??; - - for case in [ + run_environment_selection_cases([ EnvironmentSelectionCase { name: "sticky_unset_turn_unset", sticky: None, @@ -2018,6 +2002,13 @@ async fn turn_start_resolves_sticky_thread_environments_and_turn_overrides() -> sticky: Some(&["local"]), turn: None, }, + ]) + .await +} + +#[tokio::test] +async fn turn_start_resolves_multi_environment_thread_selection() -> Result<()> { + run_environment_selection_cases([ EnvironmentSelectionCase { name: "sticky_remote_turn_unset", sticky: Some(&["remote"]), @@ -2033,6 +2024,13 @@ async fn turn_start_resolves_sticky_thread_environments_and_turn_overrides() -> sticky: Some(&["local"]), turn: Some(&[]), }, + ]) + .await +} + +#[tokio::test] +async fn turn_start_resolves_turn_environment_overrides() -> Result<()> { + run_environment_selection_cases([ EnvironmentSelectionCase { name: "sticky_empty_turn_local", sticky: Some(&[]), @@ -2053,7 +2051,30 @@ async fn turn_start_resolves_sticky_thread_environments_and_turn_overrides() -> sticky: None, turn: Some(&["local", "remote"]), }, - ] { + ]) + .await +} + +async fn run_environment_selection_cases( + cases: impl IntoIterator, +) -> Result<()> { + let tmp = TempDir::new()?; + let codex_home = tmp.path().join("codex_home"); + std::fs::create_dir(&codex_home)?; + let workspace = tmp.path().join("workspace"); + std::fs::create_dir(&workspace)?; + + let server = create_mock_responses_server_repeating_assistant("done").await; + create_config_toml(&codex_home, &server.uri(), "never", &BTreeMap::default())?; + + let mut mcp = McpProcess::new_with_env( + &codex_home, + &[("CODEX_EXEC_SERVER_URL", Some("http://127.0.0.1:1"))], + ) + .await?; + timeout(DEFAULT_READ_TIMEOUT, mcp.initialize()).await??; + + for case in cases { run_environment_selection_case(&mut mcp, &workspace, case).await?; }