test: add unified DOSBox-X milestone runner
This commit is contained in:
+29
-3
@@ -2,12 +2,37 @@
|
||||
|
||||
## Host support
|
||||
|
||||
Automation currently supports **Windows 10/11 only**. It requires `uv`, QEMU
|
||||
with WHPX support, and `ffmpeg.exe` on `PATH`. The Python implementation uses
|
||||
portable APIs where possible, but other hosts are not supported yet.
|
||||
Automation currently supports **Windows 10/11 only**. The fast development loop
|
||||
requires only `uv`; it downloads pinned DOSBox-X and Open Watcom DOS releases.
|
||||
The final milestone gate additionally requires QEMU with WHPX support and
|
||||
`ffmpeg.exe` on `PATH`. Other hosts are not supported yet.
|
||||
|
||||
## Getting started
|
||||
|
||||
```powershell
|
||||
uv run ferro-test setup --accept-watcom-license
|
||||
uv run ferro-test run --through m6 -v
|
||||
```
|
||||
|
||||
`setup` reads `tools/toolchains/dosboxx.lock.json`, downloads the exact official
|
||||
archives, verifies their SHA-256 hashes, and extracts them under ignored
|
||||
`.dosboxx/`. Review the Open Watcom license referenced by the lock file before
|
||||
accepting it. Archives and installed tools are deliberately not committed.
|
||||
|
||||
Each `run` creates a disposable DOS drive, copies the current compiler, standard
|
||||
library, and fixtures, then builds `FEC.EXE` once inside DOS with Open Watcom.
|
||||
All selected milestone commands execute sequentially in that same DOSBox-X
|
||||
instance, while pytest reports every emit, Watcom build, runtime, and rejection
|
||||
check separately. Thus stale QEMU binaries cannot make the test pass.
|
||||
|
||||
`--through m6` runs cumulatively from M1; `--only m6` selects one milestone.
|
||||
Use `--keep-failed` to preserve a failed drive under `.dosboxx/runs/`,
|
||||
`--dos-log` to print the captured DOS console, `--trace-dos` to disable command
|
||||
output redirection, and `--show-dos` to keep the GUI open until a key is pressed.
|
||||
|
||||
This is the quick development smoke test. Run the QEMU/FreeDOS workflow below
|
||||
for the authoritative milestone completion gate.
|
||||
|
||||
```powershell
|
||||
uv run ferro-vm start
|
||||
uv run ferro-vm status
|
||||
@@ -18,6 +43,7 @@ The command list lives in the CLI itself, not in this file:
|
||||
```powershell
|
||||
uv run ferro-vm --help
|
||||
uv run ferro-vm <command> --help
|
||||
uv run ferro-test --help
|
||||
```
|
||||
|
||||
Working rules, verification gates, and DOS build traps are in `AGENTS.md`.
|
||||
|
||||
Reference in New Issue
Block a user