Files
Alex Vanderveen 25555579dc tests: fix three Linux ctest failures (stale assertions + a lock-path mismatch)
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 is 61279a9d ("bios
select and rematch pathing fix", 2026-08-10), not 9228f32c -- 9228f32c ADDED
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.
2026-08-25 11:17:06 -04:00
..