fix: fold case in pack checks only where it folds

This commit is contained in:
Abdessamad Derraz committed 2026-10-18 20:42:13 +02:00
1 parent 953e943d2d
commit 5fccd662bd
2 files changed
+23 -1

No files matched your search

+8 -1
View File
@@ -602,7 +602,14 @@ def verify_pack_against_platform(
with zipfile.ZipFile(zip_path, "r") as zf:
zip_set = set(zf.namelist())
zip_lower = {n.lower(): n for n in zip_set}
# A case twin stands in for the file only where the platform's
# filesystem folds case, as the builder decides: on Lakka bios.col
# and BIOS.col are two files two cores open, and either one missing
# was counted present through the other.
zip_lower = (
{n.lower(): n for n in zip_set}
if config.get("case_insensitive_fs", False) else {}
)
# Auto-detect flat vs nested ZIP
is_flat = bool(base_dest) and not any(
+15
View File
@@ -61,6 +61,21 @@ class OneRule(unittest.TestCase):
)
class TheIntegrityCheckFoldsCaseLikeTheBuilder(unittest.TestCase):
"""--verify-packs counted a file present through its case twin on Lakka,
whose filesystem keeps bios.col and BIOS.col apart: a pack missing one
of the two passed step 6."""
def test_case_folding_reads_the_platform(self):
source = (REPO_ROOT / "scripts" / "packverify.py").read_text(encoding="utf-8")
compact = " ".join(source.split())
self.assertRegex(
compact,
r"zip_lower = \( \{n\.lower\(\): n for n in zip_set\} "
r"if config\.get\(\"case_insensitive_fs\", False\) else \{\} \)",
)
class TheReportSaysSo(unittest.TestCase):
"""Reads the repository: skips when the database is absent."""