diff --git a/codex-rs/.config/nextest.toml b/codex-rs/.config/nextest.toml index 86d00e4637..b2eb62cc9f 100644 --- a/codex-rs/.config/nextest.toml +++ b/codex-rs/.config/nextest.toml @@ -11,6 +11,12 @@ max-threads = 1 [test-groups.core_apply_patch_cli_integration] max-threads = 1 +[test-groups.core_cli_stream_integration] +max-threads = 1 + +[test-groups.codex_exec_integration] +max-threads = 1 + [test-groups.windows_sandbox_legacy_sessions] max-threads = 1 @@ -39,6 +45,19 @@ test-group = 'app_server_integration' filter = 'package(codex-core) & kind(test) & test(apply_patch_cli)' test-group = 'core_apply_patch_cli_integration' +[[profile.default.overrides]] +# These tests spawn Codex CLI subprocesses, so serialize them to avoid Windows +# process-startup stalls under the full workspace test run. +filter = 'package(codex-core) & kind(test) & test(cli_stream)' +test-group = 'core_cli_stream_integration' +slow-timeout = { period = "30s", terminate-after = 2 } + +[[profile.default.overrides]] +# These tests spawn codex-exec subprocesses and can exceed the default timeout +# when several resume scenarios start simultaneously on Windows CI. +filter = 'package(codex-exec) & kind(test)' +test-group = 'codex_exec_integration' + [[profile.default.overrides]] # These tests create restricted-token Windows child processes and private desktops. # Serialize them to avoid exhausting Windows session/global desktop resources in CI. diff --git a/codex-rs/core/tests/suite/cli_stream.rs b/codex-rs/core/tests/suite/cli_stream.rs index 51d50333c2..6eeedb77ed 100644 --- a/codex-rs/core/tests/suite/cli_stream.rs +++ b/codex-rs/core/tests/suite/cli_stream.rs @@ -42,7 +42,7 @@ async fn responses_mode_stream_cli() { ); let bin = codex_utils_cargo_bin::cargo_bin("codex").unwrap(); let mut cmd = AssertCommand::new(bin); - cmd.timeout(Duration::from_secs(30)); + cmd.timeout(Duration::from_secs(60)); cmd.arg("exec") .arg("--skip-git-repo-check") .arg("-c") @@ -106,7 +106,7 @@ async fn responses_mode_stream_cli_supports_openai_base_url_config_override() { let home = TempDir::new().unwrap(); let bin = codex_utils_cargo_bin::cargo_bin("codex").unwrap(); let mut cmd = AssertCommand::new(bin); - cmd.timeout(Duration::from_secs(30)); + cmd.timeout(Duration::from_secs(60)); cmd.arg("exec") .arg("--skip-git-repo-check") .arg("-c")