mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-16 08:23:28 -05:00
test: cover the native format exporters
export_native turns the profile data back into each platform's own file, for a maintainer there to pick up and use, and none of the ten exporters had a test. Coverage goes from 0 to 83%. Writing them found the EmuDeck exporter rejecting its own output: its export skips placeholder entries, its validate looked for them anyway and reported the omission as a missing hash. Both sides apply the same filter now. The placeholder assertion initially passed for the wrong reason twice over -- the fixture entry had no hash, so it was dropped as incomplete rather than as a placeholder, and the assertion then read the name while the exporters write the path. It is pinned on an unmistakable destination now, and removing the guard fails two tests.
This commit is contained in:
1 parent
fa5b1130ec
commit
b120528dd7
2 files changed
+219
-1
No files matched your search
@@ -181,11 +181,16 @@ class Exporter(BaseExporter):
|
||||
if not sys_data:
|
||||
continue
|
||||
for fe in sys_data.get("files", []):
|
||||
# export skips placeholders and private entries, so looking
|
||||
# for them here makes the exporter reject its own output.
|
||||
name = fe.get("name", "")
|
||||
if self._is_pattern(name) or name.startswith("_"):
|
||||
continue
|
||||
md5 = fe.get("md5", "")
|
||||
if isinstance(md5, list):
|
||||
md5 = md5[0] if md5 else ""
|
||||
if md5 and re.fullmatch(r"[a-f0-9]{32}", md5) and md5 not in content:
|
||||
issues.append(f"missing md5: {md5} ({fe.get('name', '')})")
|
||||
issues.append(f"missing md5: {md5} ({name})")
|
||||
|
||||
for sys_id, cfg in _SYSTEM_CONFIG.items():
|
||||
func = cfg["func"]
|
||||
|
||||
Reference in new issue
Block a user