mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-28 10:59:16 -04:00
25555579dc
Reported in mstan/psxrecomp#224. All three are test-only defects; no product code is at fault. test_launcher_vulkan_option: `gi` became a pointer and the surrounding code was reformatted, so two assertions no longer match the source. The issue reports one because Python `assert` stops at the first failure; line 25 fails identically and also renamed `vulkan_offered` -> `vulkan_offered_b`. Blame is61279a9d("bios select and rematch pathing fix", 2026-08-10), not9228f32c--9228f32cADDED both the source lines and the assertions as a matching pair. test_vk_present_wait_stage: not a stale assertion. `652be7ba` added a forward declaration of submit_present above the definition, and the regex `static void submit_present\(.*?\n\}` latches onto the prototype, so `body` became the *next* function (finish_present) and submit_present was never examined. VK_PIPELINE_STAGE_TRANSFER_BIT passed coincidentally on finish_present's barrier -- a false pass. Anchor the match on the definition by requiring `)` followed by `{`. test_aot_overlay_discovery (check_atomic_dll_publication): the test hardcodes ".dll" shard names, but load_region_coverage re-derives the shard path via overlay_ext(), which is ".so" on Linux. The writer held <stem>.dll.pair-lock while the coverage reader took <stem>.so.pair-lock -- different files, no contention, so the reader crossed the publication window in 0.000s. This is why only one of the two readers failed: shard_pair_files_complete is handed the .dll path directly and locked correctly. The pair-lock machinery in compile_overlays.py is sound (fcntl.flock; all five renames in the expected order); only the test's naming was wrong. Derive the extension instead. Verified on Linux: tests 1 and 2 pass; check_atomic_dll_publication now blocks both readers (1.004s / 1.016s) and passes in 2.4s. NOT fixed here: aot_overlay_discovery still fails later, in check_candidate_capacity_publication, from the SAME class of defect -- 80 hardcoded ".dll" literals remain in that file and cache_candidate_inventory also filters on overlay_ext(). That is a wider Linux port of the test than #224 describes and needs an owner. Note also that recompiler/CMakeLists.txt:485 claims this test is DISABLED, but no set_tests_properties marks it so; only the three known-failing guards are actually disabled.