mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-18 01:13:30 -05:00
fix: name a System.dat addition by its path
This commit is contained in:
1 parent
db179faf82
commit
ec4a06e872
2 files changed
+22
-2
No files matched your search
@@ -89,10 +89,14 @@ class Exporter(BaseExporter):
|
||||
libretro writes the path for some entries (ep128emu/roms/cpc464.rom)
|
||||
and the bare name for others whose destination has a directory all
|
||||
the same (iplromco.dat, which lives under keropi/), so its own
|
||||
spelling is recorded rather than derived.
|
||||
spelling is recorded rather than derived. An addition has no
|
||||
spelling of libretro's to follow and is named by where the core reads
|
||||
it: two PCSX2 convert.glsl shaders under one bare name were one line.
|
||||
"""
|
||||
declared = fe.native("native_path", "")
|
||||
return str(declared) if declared else fe.name
|
||||
if declared:
|
||||
return str(declared)
|
||||
return fe.destination if fe.platform is None else fe.name
|
||||
|
||||
def _header(self, originals: dict[str, str], scraped: dict | None) -> list[str]:
|
||||
"""Reuse the original header verbatim when we have the original."""
|
||||
|
||||
@@ -242,6 +242,22 @@ class PureDataExportsKeepWhatWeDoNotModel(unittest.TestCase):
|
||||
self.assertIn('\tcomment "New - System"', produced)
|
||||
|
||||
|
||||
def test_two_additions_differing_by_directory_are_two_lines(self):
|
||||
"""PCSX2's vulkan and opengl convert.glsl were both written under the
|
||||
bare name; the second was dropped and still counted as added."""
|
||||
from exporter.baseline import Report
|
||||
|
||||
shaders = [
|
||||
NativeFile("convert.glsl", f"pcsx2/resources/shaders/{api}/convert.glsl",
|
||||
"Sony - PlayStation 2", truth={"md5": digest * 32})
|
||||
for api, digest in (("vulkan", "a"), ("opengl", "b"))
|
||||
]
|
||||
systems = {"Sony - PlayStation 2": NativeSystem("Sony - PlayStation 2", files=shaders)}
|
||||
produced = SystemDat().render(systems, Report(), {})["System.dat"]
|
||||
self.assertIn("name pcsx2/resources/shaders/vulkan/convert.glsl md5 " + "a" * 32, produced)
|
||||
self.assertIn("name pcsx2/resources/shaders/opengl/convert.glsl md5 " + "b" * 32, produced)
|
||||
self.assertEqual(SystemDat().validate(systems, {"System.dat": produced}), [])
|
||||
|
||||
class EmuDeckWritesItsCorrections(unittest.TestCase):
|
||||
"""A correction replaced nothing: every withdrawal was refused, the run
|
||||
counted the correction anyway and validate failed on it."""
|
||||
|
||||
Reference in new issue
Block a user