Find MSVC Cargo build outputs in the Wave case runner
- Dominant language
- Rust
- Stars
- 53
- Forks
- 16
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 46
Description
`tools/run_tests.py::resolve_wavec()` probes default Cargo outputs and explicit `x86_64-pc-windows-gnu` directories. It omits explicit `x86_64-pc-windows-msvc` and `aarch64-pc-windows-msvc` outputs. Consequently an MSVC build performed with `cargo build --target ...` can leave the case runner reporting no compiler, or selecting an unrelated stale build.
Add both MSVC output locations with deliberate precedence. Prefer an explicit compiler-path option if one is supplied and ensure a selected host architecture cannot silently run a different compiler. Isolate path selection enough to test it using temporary directories without starting LLVM or importing the runner's executable main path.
Acceptance: tests cover debug/release, both MSVC architectures, an absent compiler, and conflicting stale binaries; existing GNU/default output selection keeps working. Document the selected compiler in test output. This is a small Python tooling task; no Rust compiler or frontend redesign is required.
Related: #292, #493. Keep Windows GNU support.
Contributor guide
Research direction
Start in tools/run_tests.py at resolve_wavec() and trace how default and GNU Cargo output paths are selected. Isolate path selection so temporary-directory tests can cover debug/release, both MSVC architectures, absent and stale binaries, while preserving existing GNU/default behavior. Done means the runner selects the explicit host-compatible compiler with deliberate precedence and documents the selected compiler in test output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100