diff --git a/scripts/verify.py b/scripts/verify.py index 3b03bf3f..b51e4c35 100644 --- a/scripts/verify.py +++ b/scripts/verify.py @@ -752,20 +752,19 @@ def verify_platform( if emu_profiles is not None else load_emulator_profiles(emulators_dir) ) - hle_index: dict[str, bool] = {} - for profile in profiles.values(): - for f in profile.get("files", []): - if f.get("hle_fallback"): - hle_index[f.get("name", "")] = True # Ground truth comes from the emulators the platform runs. A standalone # profile that loads a same-named file of its own (ZEsarUX's 48K # cpc6128.rom against cap32's 32K one) has nothing to say about a - # RetroArch pack. + # RetroArch pack, nor does its HLE: dosbox-x's FONT.ROM fallback turned a + # missing required Batocera BIOS into INFO. plat_cores = resolve_platform_cores(config, profiles) platform_profiles = {name: profiles[name] for name in plat_cores} - validation_index = _build_validation_index( - {name: profiles[name] for name in plat_cores} - ) + hle_index: dict[str, bool] = {} + for profile in platform_profiles.values(): + for f in profile.get("files", []): + if f.get("hle_fallback"): + hle_index[f.get("name", "")] = True + validation_index = _build_validation_index(platform_profiles) # Filter systems by target if not target_cores: diff --git a/tests/test_validation_scope.py b/tests/test_validation_scope.py index d691e7d2..92989c22 100644 --- a/tests/test_validation_scope.py +++ b/tests/test_validation_scope.py @@ -29,9 +29,9 @@ class ValidationIndexScope(unittest.TestCase): self.assertRegex( verify, r"plat_cores = resolve_platform_cores\(config, profiles\)\s+" - r"validation_index = _build_validation_index\(\s*" - r"\{name: profiles\[name\] for name in plat_cores\}", + r"platform_profiles = \{name: profiles\[name\] for name in plat_cores\}", ) + self.assertIn("validation_index = _build_validation_index(platform_profiles)", verify) self.assertRegex( builder, r"for name in resolve_platform_cores\(config, emu_profiles\)\s*\}\s*" @@ -39,5 +39,11 @@ class ValidationIndexScope(unittest.TestCase): ) +class HleIndexScope(unittest.TestCase): + def test_hle_index_reads_the_platform_cores(self): + verify = (REPO_ROOT / "scripts" / "verify.py").read_text(encoding="utf-8") + start = verify.index("hle_index: dict[str, bool] = {}") + self.assertIn("for profile in platform_profiles.values():", verify[start:start + 200]) + if __name__ == "__main__": unittest.main()