fix: refuse a target --verify-packs cannot honour

An unknown target, or one the platform does not publish, was dropped and
the full pack verified under it with rc 0 (finding 34).
This commit is contained in:
Abdessamad Derraz committed 2026-11-05 11:43:53 +01:00
1 parent 609710e2d7
commit 8ef4eb47fc
3 files changed
+41 -11

No files matched your search

+6 -2
View File
@@ -4,7 +4,8 @@
under the target's name (Recalbox, Lakka, BizHawk, MiSTer, ROCKNIX). The
conformance check read the same target without the --all tolerance, raised
FileNotFoundError on the first of those packs and stopped the run in a
traceback after every pack had been written.
traceback after every pack had been written. Such a platform is now left
out of a targeted --all run, and the check refuses it as the build does.
"""
from __future__ import annotations
@@ -31,7 +32,10 @@ class CheckReadsTheTargetLikeTheBuild(unittest.TestCase):
contextlib.redirect_stdout(io.StringIO()):
with self.assertRaises(ValueError):
build_target_cores_cache(["recalbox"], "x86_64", platforms, is_all=True)
self.assertIsNone(_target_cores_for("recalbox", "x86_64", platforms))
# The build never packs such a platform under the target, so the
# check refuses it too instead of reading the full pack.
with self.assertRaises(FileNotFoundError):
_target_cores_for("recalbox", "x86_64", platforms)
def test_a_platform_with_a_target_file_is_narrowed(self):
cores = _target_cores_for("retroarch", "switch", str(REPO_ROOT / "platforms"))
+18
View File
@@ -116,6 +116,24 @@ class VerifyPackChoice(unittest.TestCase):
dict(zip((name for _p, name in checked), self.variants)), names
)
def test_a_target_the_platform_lacks_is_refused(self):
"""`--platform bizhawk --target rpi4typo --verify-packs` verified the
full pack and said `all OK`, where the build refused the target."""
import contextlib
import io
bizhawk = self.gp._platform_pack_stem(["bizhawk"], "bizhawk", "platforms")
self._touch(f"{bizhawk}_BIOS_Pack.zip")
self._touch(f"{self.stem}_BIOS_Pack.zip")
for platform, target in (("bizhawk", "rpi4typo"), ("retroarch", "swich")):
with self.subTest(platform=platform), \
contextlib.redirect_stdout(io.StringIO()), \
contextlib.redirect_stderr(io.StringIO()), \
self.assertRaises(SystemExit) as ctx:
self._run(self._args(platform=platform, target=target))
self.assertEqual(ctx.exception.code, 1)
self.assertEqual(self.variants, [])
def test_the_run_ends_on_a_summary(self):
"""A failing pack was named only above its own error lines, and the
log ended on the last platform's OK line."""