Skip to content

[codex] Speed up local nextest runs - #26479

Merged
anp-oai merged 3 commits into
mainfrom
codex/local-nextest-profile
Jun 9, 2026
Merged

[codex] Speed up local nextest runs#26479
anp-oai merged 3 commits into
mainfrom
codex/local-nextest-profile

Conversation

@anp-oai

@anp-oai anp-oai commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Why

just test currently uses the CI-oriented nextest profile, which serializes app-server integration tests even on developer machines that can run several safely. Bounded local parallelism substantially shortens this common iteration loop without changing CI behavior.

Eight-worker experiments were faster, but keeping them reliable required relaxing several test deadlines. Four workers for integration tests is a solid tradeoff that speeds up local testing without needing to change test logic.

What changed

  • Add a local nextest profile that inherits the existing defaults.
  • Allow up to four app-server integration tests to run concurrently under that profile.
  • Make just test select the local profile on Unix and Windows.
  • Keep the default CI profile serialized and leave all test deadlines unchanged.

The tests use separate processes, randomized temporary CODEX_HOME directories, and ephemeral ports. The remaining shared constraints are system resources; each app-server also uses a multi-thread Tokio runtime, and fuzzy-search tests can create additional worker threads, so the local cap remains intentionally conservative.

Performance and validation

All measurements below are warm, execution-only app-server runs with nextest retries disabled.

On the current rebased branch, an AMD EPYC 7763 machine with 16 logical CPUs and 62 GiB RAM completed three consecutive runs:

Run Nextest time Wall time Result
1 142.941s 145.17s 836/836 passed
2 143.402s 145.59s 836/836 passed
3 142.870s 145.08s 836/836 passed

The mean wall time was 145.28s. The slow-inventory, approval replay, and zsh-fork tests all passed with their original deadlines.

Earlier measurements on the same Linux machine, before the suite grew, showed the scaling that motivated the change:

App-server concurrency Nextest time Result
1 369.5s 572/572 passed
2 194.5s 572/572 passed
4 111.0s mean over 3 runs 3/3 clean

Four workers reduced that execution time by about 70%, a roughly 3.3x speedup over serialization.

Comment thread codex-rs/.config/nextest.toml Outdated
@anp-oai
anp-oai force-pushed the codex/local-nextest-profile branch 2 times, most recently from 7dac808 to b5ce188 Compare June 4, 2026 23:47
@anp-oai
anp-oai marked this pull request as ready for review June 5, 2026 01:36
Comment thread codex-rs/app-server/tests/suite/v2/thread_resume.rs Outdated
Comment thread codex-rs/app-server/tests/suite/v2/mcp_server_status.rs Outdated
@anp-oai
anp-oai force-pushed the codex/local-nextest-profile branch from 0de53ff to bfa7824 Compare June 9, 2026 19:16
@anp-oai
anp-oai merged commit 6e7ab52 into main Jun 9, 2026
31 checks passed
@anp-oai
anp-oai deleted the codex/local-nextest-profile branch June 9, 2026 19:48
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 9, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants