Test the input seqlock and the IPC magic/version handshake

New protocol_test covers two previously-untested cross-process contracts:
- publish_pads/read_pads seqlock: a concurrent writer + reader run for ~700 ms;
  the reader (2.5M snapshots) never observes a torn snapshot, and read_pads
  returns false (bounded, no hang) when the sequence is stuck odd mid-write.
- IpcClient::connect refuses a section with a mismatched version or a bad magic,
  and accepts a matching header -- the ABI safety net that only had happy-path
  coverage before.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-24 01:59:40 +02:00
parent 8fd209c73f
commit 9cc69d1dcd
3 changed files with 136 additions and 2 deletions

View File

@@ -114,8 +114,6 @@ From an in-depth review pass. Each item is fixed test-first (a failing test, the
as its own commit; "verify" items are confirmed real before any change, and dropped if not.
Test coverage:
- **Seqlock reader paths** — torn-read retry, odd-sequence skip, attempt-exhaustion → false.
- **Version/magic mismatch rejection** — negative test that the hook refuses a bad version.
- **Dedicated hook tests** — `focus_spoof`, `vk_hook` (present), `d3d9_hook`.
- **Misc units** — `SharedMemory` RAII/move, `wav` malformed input, `tool_paths` resolution, injector
bitness check; strengthen the `audio_ring` overrun-at-seam case.