test(raft-apply-decoupling): apply/notify timing integration through the full pump (task 6.3)
Add test_apply_pump_integration.c (2 tests), no production changes. Exercises the full live pump (real commit engine, real apply dispatch, real hook subscribers) for both a job submission and a fact: proves reply-after-visibility ordering for commands, and zero fact-reaction side effects during a delayed-commit/quorum-loss window (polled repeatedly across real time, not checked once). Confirms Req 4.3 by construction, not assertion: the apply walk only ever invokes apply_committed_entry() for LSNs already <= committed_lsn, so a consumer acting on the post-apply notification never needs to separately re-check a commit watermark. Independently verifies apply_committed_entry()'s generic HOOK_DETAIL_JOB_UPDATE routing (unchanged by task 6.1's _pad fix) makes the type-specific sched.c/apiserver.c hook handlers structurally unreachable for live-applied facts -- confirmed their va_arg-typed signatures would type-confuse-crash if ever called with the job_t* apply_committed_entry() actually passes, making the single generic reaction spy a sound design, not a coverage gap. Repo-wide audit confirms exactly 2 live call sites ever fire these hook details (the guarded apply seam, and job_ctrl's legitimate SIGCONT/SIGSTOP path) -- no orphaned third site.
This commit is contained in:
parent
88577f4658
commit
5f3b97a97b
4 changed files with 768 additions and 1 deletions
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue