OXYGENHUB
◆ main enhanced-x16-emulator / tests / pt / README.md
1.4 KiB · Markdown · last changed chore(): initial commit 25 days ago renderedsource blame history raw
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.