Aller au contenu
Phosphoneowiki
Sommaire

Les tests

Phosphoneo est surtout un oracle : ses tests sont sa raison d’être. Voici ce qu’ils prouvent, et comment les relancer.

Quatre sortes de preuves

PreuveCommandeCe qu’elle établit
Oracle du processeurmake test-oracle2 540 000 cas, 100 % exigé
Captures de référencemake test-goldenl’image et la console de chaque cas gardent la même empreinte
Différentielmake test-diffimages identiques pixel pour pixel à l’émulateur officiel (cas communs)
Co-simulationmake test-cosimle vrai firmware ARM donne le même résultat

Autour d’elles, une trentaine de scripts d’intégration vérifient chaque option : test-break, test-symbols, test-pokes, test-savestate, test-record, test-loadat, test-gdb, test-tui, test-sdl, test-wasm… make test les enchaîne.

Les captures de référence

Chaque cas (tests/golden/cases/*.case) dit quel programme lancer, à quel cycle photographier, et éventuellement quelles touches taper. tools/golden.sh run rejoue tout et compare aux empreintes SHA-256 du manifeste. Règle : une capture ne se re-référence jamais pour faire passer un test, seulement après avoir été regardée (golden.sh show NOM la convertit en PNG).

Les lignes de version (bannière du firmware, NeoDOS version …, réponse de VER) sont masquées dans les empreintes : changer de version de firmware ne casse pas tous les cas, seuls les vrais changements se voient.

Réutiliser le script dans un autre projet

tools/golden.sh est écrit pour servir à n’importe quel dépôt : on lui donne un dossier de cas et un manifeste. C’est ce que font les portages du collectif (AsteroNeo, Wolfenstein 3D) pour leurs propres tests.

Sources dans le dépôt : Makefile, tests/integration/, tools/golden.sh, docs/ACCURACY.md.