mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-17 17:03:27 -05:00
51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
"""The gap report settles a core file as verify does: slot or size.
|
|
|
|
cross_reference counted a core file declared as soon as a platform named
|
|
it. RetroArch names Galaksija's 4 KiB galaksija/rom1.bin, so DOSBox's
|
|
32 KiB SC-55/ROM1.BIN left the gaps page while verify listed it undeclared.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import sys
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(REPO_ROOT / "scripts"))
|
|
|
|
from cross_reference import cross_reference # noqa: E402
|
|
from validation import declaration_settles # noqa: E402
|
|
|
|
SC55 = {"name": "ROM1.BIN", "path": "SC-55/ROM1.BIN", "size": 32768,
|
|
"validation": ["size"], "required": True}
|
|
|
|
|
|
class OneRule(unittest.TestCase):
|
|
def test_a_same_named_file_of_another_size_does_not_settle(self):
|
|
declared = {"ROM1.BIN": [(4096, "galaksija/rom1.bin")]}
|
|
self.assertFalse(declaration_settles(SC55, "ROM1.BIN", declared, SC55["path"]))
|
|
declared["ROM1.BIN"].append((32768, "rom1.bin"))
|
|
self.assertTrue(declaration_settles(SC55, "ROM1.BIN", declared, SC55["path"]))
|
|
|
|
def test_the_gap_report_reads_it(self):
|
|
profiles = {"dosbox": {"emulator": "DOSBox", "type": "libretro",
|
|
"systems": ["dos"], "files": [SC55]}}
|
|
report = cross_reference(
|
|
profiles, {}, {"files": {}, "indexes": {}},
|
|
all_declared={"ROM1.BIN": [(4096, "galaksija/rom1.bin")]},
|
|
)
|
|
self.assertEqual(
|
|
[g["name"] for g in report["dosbox"]["gap_details"]], ["ROM1.BIN"]
|
|
)
|
|
|
|
def test_both_sides_call_it(self):
|
|
for module in ("verify.py", "cross_reference.py"):
|
|
source = (REPO_ROOT / "scripts" / module).read_text(encoding="utf-8")
|
|
self.assertIn("declaration_settles(", source, module)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|