mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-08 19:13:47 -06:00
fix: settle a slot in any case where case folds
declaration_settles tested the exact-case name before the slot, so on a filesystem that folds case a declaration spelled otherwise never settled the core's file: RetroBat's 32X_G_BIOS.BIN left BlastEm's 32X_G_BIOS.bin undeclared, and verify counted ten such entries as core files. A slot a case-insensitive platform fills now settles the entry whatever the spelling (case_folded_slots), the slot arbitration judging its bytes as for the exact name. Lakka and RetroPie, which keep both names, are unchanged. Measured: 10 entries settle on RetroBat, 21 on RetroArch. generate_site.py builds its gap report through cross_reference() without the folded slots; it needs folded_declared_slots() passed in the same way as the command line now does.
This commit is contained in:
1 parent
184c822e6e
commit
82a3e44afd
5 files changed
+101
-16
No files matched your search
@@ -15,7 +15,7 @@ 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
|
||||
from validation import case_folded_slots, declaration_settles # noqa: E402
|
||||
|
||||
SC55 = {"name": "ROM1.BIN", "path": "SC-55/ROM1.BIN", "size": 32768,
|
||||
"validation": ["size"], "required": True}
|
||||
@@ -45,6 +45,33 @@ class OneRule(unittest.TestCase):
|
||||
self.assertIn("declaration_settles(", source, module)
|
||||
|
||||
|
||||
class ACaseFoldingFilesystem(unittest.TestCase):
|
||||
"""RetroBat declares 32X_G_BIOS.BIN, BlastEm opens 32X_G_BIOS.bin at the
|
||||
same place. The exact-case name test reported it undeclared before the
|
||||
slot was ever compared."""
|
||||
|
||||
declared = {"32X_G_BIOS.BIN": [(256, "32x_g_bios.bin")]}
|
||||
entry = {"name": "32X_G_BIOS.bin"}
|
||||
|
||||
def test_the_slot_settles_it_where_case_folds(self):
|
||||
folded = case_folded_slots({"case_insensitive_fs": True}, self.declared)
|
||||
self.assertTrue(
|
||||
declaration_settles(self.entry, "32X_G_BIOS.bin", self.declared, "", folded)
|
||||
)
|
||||
|
||||
def test_two_spellings_are_two_files_elsewhere(self):
|
||||
folded = case_folded_slots({"case_insensitive_fs": False}, self.declared)
|
||||
self.assertFalse(
|
||||
declaration_settles(self.entry, "32X_G_BIOS.bin", self.declared, "", folded)
|
||||
)
|
||||
|
||||
def test_another_place_settles_nothing(self):
|
||||
folded = case_folded_slots({"case_insensitive_fs": True}, self.declared)
|
||||
self.assertFalse(declaration_settles(
|
||||
self.entry, "32X_G_BIOS.bin", self.declared, "blastem/32X_G_BIOS.bin", folded
|
||||
))
|
||||
|
||||
|
||||
class TheRunningBuildPlacesTheGap(unittest.TestCase):
|
||||
"""Batocera runs Cemu standalone, which reads keys.txt at its
|
||||
standalone_path. The gap report gave the libretro Cemu/keys.txt while
|
||||
|
||||
Reference in new issue
Block a user