mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
feat: add include_all param to find_undeclared_files
This commit is contained in:
@@ -313,6 +313,7 @@ def find_undeclared_files(
|
|||||||
emu_profiles: dict | None = None,
|
emu_profiles: dict | None = None,
|
||||||
target_cores: set[str] | None = None,
|
target_cores: set[str] | None = None,
|
||||||
data_names: set[str] | None = None,
|
data_names: set[str] | None = None,
|
||||||
|
include_all: bool = False,
|
||||||
) -> list[dict]:
|
) -> list[dict]:
|
||||||
"""Find files needed by cores but not declared in platform config."""
|
"""Find files needed by cores but not declared in platform config."""
|
||||||
# Collect all filenames declared by this platform, enriched with
|
# Collect all filenames declared by this platform, enriched with
|
||||||
@@ -385,12 +386,13 @@ def find_undeclared_files(
|
|||||||
archive = f.get("archive")
|
archive = f.get("archive")
|
||||||
|
|
||||||
# Skip files declared by the platform (by name or archive)
|
# Skip files declared by the platform (by name or archive)
|
||||||
if fname in declared_names:
|
if not include_all:
|
||||||
seen_files.add(fname)
|
if fname in declared_names:
|
||||||
continue
|
seen_files.add(fname)
|
||||||
if archive and archive in declared_names:
|
continue
|
||||||
seen_files.add(fname)
|
if archive and archive in declared_names:
|
||||||
continue
|
seen_files.add(fname)
|
||||||
|
continue
|
||||||
|
|
||||||
seen_files.add(fname)
|
seen_files.add(fname)
|
||||||
|
|
||||||
|
|||||||
@@ -4451,5 +4451,35 @@ struct BurnDriver BurnDrvneogeo = {
|
|||||||
self.assertEqual(result["core_version"], "v1.0.0.03")
|
self.assertEqual(result["core_version"], "v1.0.0.03")
|
||||||
|
|
||||||
|
|
||||||
|
def _load_config(self, platform_name: str) -> dict:
|
||||||
|
return load_platform_config(platform_name, self.platforms_dir)
|
||||||
|
|
||||||
|
def test_200_find_undeclared_include_all(self):
|
||||||
|
"""include_all=True returns ALL core files, including declared ones."""
|
||||||
|
from verify import find_undeclared_files
|
||||||
|
|
||||||
|
config = self._load_config("test_existence")
|
||||||
|
profiles = load_emulator_profiles(self.emulators_dir)
|
||||||
|
# Without include_all: only undeclared files returned
|
||||||
|
undeclared = find_undeclared_files(
|
||||||
|
config, self.emulators_dir, self.db, profiles
|
||||||
|
)
|
||||||
|
undeclared_names = {u["name"] for u in undeclared}
|
||||||
|
# present_req.bin is declared in platform YAML, should NOT be in undeclared
|
||||||
|
self.assertNotIn("present_req.bin", undeclared_names)
|
||||||
|
|
||||||
|
# With include_all: ALL core files returned, including declared ones
|
||||||
|
all_files = find_undeclared_files(
|
||||||
|
config, self.emulators_dir, self.db, profiles, include_all=True
|
||||||
|
)
|
||||||
|
all_names = {u["name"] for u in all_files}
|
||||||
|
# present_req.bin IS declared but should be returned with include_all
|
||||||
|
self.assertIn("present_req.bin", all_names)
|
||||||
|
# undeclared files should still be present
|
||||||
|
self.assertIn("undeclared_req.bin", all_names)
|
||||||
|
# Launcher/alias files should still be excluded
|
||||||
|
self.assertNotIn("launcher_bios.bin", all_names)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user