mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-23 20:29:06 -05:00
fix: declare the FreeIntv overlays on the core
FreeIntv declared no data tree while its alias freeintv_ts_overlay, the same code, declared freeintv_overlays. The core reads freeintv_overlays/<rom>.png only with the multi-screen option and draws its embedded keypad image without one (src/libretro.c:278-280, 294, 321-325), so the tree is optional. A test holds every alias to the trees of its core.
This commit is contained in:
1 parent
734643b8fc
commit
d678e6acfa
2 files changed
+32
No files matched your search
@@ -5923,6 +5923,28 @@ class RequiredOnlyReachesDataDirectories(unittest.TestCase):
|
||||
"required": False},
|
||||
])
|
||||
|
||||
def test_an_alias_reads_the_trees_of_its_core(self):
|
||||
"""An alias is the same binary under another name. FreeIntv declared
|
||||
no overlay tree while its alias freeintv_ts_overlay did, so the
|
||||
emulator pack of the core itself left the overlays out."""
|
||||
profiles = {
|
||||
path.stem: yaml.safe_load(path.read_text(encoding="utf-8"))
|
||||
for path in (ROOT / "emulators").glob("*.yml")
|
||||
}
|
||||
|
||||
def trees(profile: dict) -> dict:
|
||||
return {
|
||||
dd["ref"]: dd.get("required", True)
|
||||
for dd in profile.get("data_directories") or []
|
||||
}
|
||||
|
||||
for name, profile in profiles.items():
|
||||
target = profile.get("alias_of")
|
||||
if not target or target not in profiles:
|
||||
continue
|
||||
with self.subTest(alias=name, core=target):
|
||||
self.assertEqual(trees(profile), trees(profiles[target]))
|
||||
|
||||
|
||||
class InstallerJsonKindsNeverOverwriteEachOther(unittest.TestCase):
|
||||
"""Install manifests and target core lists are both <platform>.json.
|
||||
|
||||
Reference in new issue
Block a user