Commit Graph

2 Commits

  • bazel: run wrapped Rust unit test shards (#18913)
    ## Why
    
    The `codex-tui` Cargo test suite was catching stale snapshot
    expectations, but the matching Bazel unit-test target was still green.
    The TUI unit target is wrapped by `workspace_root_test` so tests run
    from the repository root and Insta can resolve Cargo-like snapshot
    paths. After native Bazel sharding was enabled for that wrapped target,
    rules_rust also inserted its own sharding wrapper around the Rust test
    binary.
    
    Those two wrappers did not compose: rules_rust's sharding wrapper
    expects to run from its own runfiles cwd, while `workspace_root_test`
    deliberately changes cwd to the repo root before invoking the test. In
    that configuration, the inner wrapper could fail to enumerate the Rust
    tests and exit successfully with empty shards, so snapshot regressions
    were not being exercised by Bazel.
    
    ## What Changed
    
    - Stop enabling rules_rust's inner `experimental_enable_sharding` for
    unit-test binaries created by `codex_rust_crate`.
    - Keep the configured `shard_count` on the outer `workspace_root_test`
    target.
    - Add libtest sharding directly to `workspace_root_test_launcher.sh.tpl`
    and `workspace_root_test_launcher.bat.tpl` after the launcher has
    resolved the actual test binary and established the intended
    repository-root cwd.
    - Partition tests by a stable FNV-1a hash of each libtest test name,
    matching the stable-shard behavior we wanted without depending on the
    inner rules_rust wrapper.
    - Preserve ad-hoc local test filters by running the resolved test binary
    directly when explicit test args are supplied.
    - On Windows, run selected libtest names from the shard list in bounded
    PowerShell batches instead of concatenating every selected test into one
    `cmd.exe` command line.
    
    This PR is stacked on top of #18912, which contains only the snapshot
    expectation updates exposed once the Bazel target actually runs the TUI
    unit tests. It is also the reason #18916 becomes visible: once this
    wrapper fix makes Bazel execute the affected `codex-core` test, that
    test needs its own executable-path setup fixed.
    
    ## Verification
    
    - `cargo test -p codex-tui`
    - `bazel test //codex-rs/tui:tui-unit-tests --test_output=errors`
    - `bazel test //codex-rs/tui:all --test_output=errors`
    - `bash -n workspace_root_test_launcher.sh.tpl`
    - Exercised the Windows PowerShell batching fragment locally with a fake
    test binary and shard-list file.
  • fix(ci): restore guardian coverage and bazel unit tests (#13912)
    ## Summary
    - restore the guardian review request snapshot test and its tracked
    snapshot after it was dropped from `main`
    - make Bazel Rust unit-test wrappers resolve runfiles correctly on
    manifest-only platforms like macOS and point Insta at the real workspace
    root
    - harden the shell-escalation socket-closure assertion so the musl Bazel
    test no longer depends on fd reuse behavior
    
    ## Verification
    - cargo test -p codex-core
    guardian_review_request_layout_matches_model_visible_request_snapshot
    - cargo test -p codex-shell-escalation
    - bazel test //codex-rs/exec:exec-unit-tests
    //codex-rs/shell-escalation:shell-escalation-unit-tests
    
    Supersedes #13894.
    
    ---------
    
    Co-authored-by: Ahmed Ibrahim <aibrahim@openai.com>
    Co-authored-by: viyatb-oai <viyatb@openai.com>
    Co-authored-by: Codex <noreply@openai.com>