| 1 |
# ProcessorTests fixtures |
| 2 |
|
| 3 |
`wdc65c02.bin` and `816-emu.bin` are committed. They are the converted form of |
| 4 |
SingleStepTests/ProcessorTests: 100 cases per opcode, taken as a prefix of each |
| 5 |
opcode's file. |
| 6 |
|
| 7 |
They are committed rather than downloaded because the conversion is 2.6 MB and |
| 8 |
the JSON it comes from is 3.6 GB across the suites. Downloading that on every CI |
| 9 |
run cost eight minutes and a cache dependency, and made the tests impossible to |
| 10 |
run offline. |
| 11 |
|
| 12 |
## Provenance |
| 13 |
|
| 14 |
- 65C02: https://github.com/SingleStepTests/65x02 — `wdc65c02/v1`, MIT licensed, |
| 15 |
Copyright (c) 2024 Thomas Harte et al. |
| 16 |
- 65816: https://github.com/SingleStepTests/65816 — `v1` |
| 17 |
|
| 18 |
The cases are measurements of what the hardware does with a given starting |
| 19 |
state. What is committed here is our own encoding of those measurements, in the |
| 20 |
format documented in `pt_convert.py`, not a copy of the upstream files. |
| 21 |
|
| 22 |
## Regenerating |
| 23 |
|
| 24 |
python tests/fetch_pt.py --force |
| 25 |
python tests/fetch_pt.py --force --variant 816-emu |
| 26 |
|
| 27 |
The JSON lands in `tests/pt/<variant>/` and is not committed. Cases are taken as |
| 28 |
a prefix rather than sampled, so any machine produces the same fixture and the |
| 29 |
exact per-opcode counts in the baselines stay meaningful. |
| 30 |
|
| 31 |
Deeper runs are a local matter: `--cases 10000` uses everything upstream has. |
| 32 |
Do not commit the result, because a baseline built for one case count cannot be |
| 33 |
compared against a run at another, and the test says so rather than guessing. |