2 from pathlib import Path
5 root = Path(__file__).resolve().parents[1]
6 dumper = (root / "libfriidump" / "dumper.c").read_text(encoding="utf-8")
7 portable = (root / "libfriidump" / "xbox_portable.c").read_text(encoding="utf-8")
8 cmake = (root / "libfriidump" / "CMakeLists.txt").read_text(encoding="utf-8")
9 rsp = (root / "msvc32_friidump.rsp").read_text(encoding="utf-8")
12 ("portable source is compiled by CMake", "xbox_portable.c" in cmake),
13 ("portable source is compiled by MSVC response file", r"libfriidump\xbox_portable.c" in rsp),
14 ("portable XDFS/XBE metadata parser exists", "xbox_portable_read_metadata" in portable),
15 ("portable UTF-16 title conversion exists", "xbox_decode_title" in portable),
16 ("portable DMI media-ID extraction exists", "xbox_parse_media_id" in portable),
17 ("portable result handoff begins for ISO", "xbox_portable_result_begin (dmp, dmp -> outfile_iso, '1')" in dumper),
18 ("portable result handoff begins for XISO", "xbox_portable_result_begin (dmp, dmp -> outfile_xiso, '2')" in dumper),
19 ("portable result handoff captures metadata", "xbox_portable_result_capture_metadata (dmp)" in dumper),
20 ("portable result handoff finalizes hashes", "result -> hashes_complete = 1" in dumper),
21 ("Linux default XBE-derived filename is resolved", "xbox_portable_resolve_output_path" in dumper),
22 ("Windows challenge-drive copied path remains guarded", bool(re.search(r"#ifdef WIN32\s+if \(disc_is_xbox_challenge_drive", dumper))),
26 for label, ok in checks:
27 print(f"{'PASS' if ok else 'FAIL'}: {label}")
33 print("LINUX XBOX PORTABLE CONTRACT: PASS")