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
|
|
@ -83,6 +83,7 @@ extern void test_replay_apply_seam(void);
|
|||
extern void test_apply_reapply_idempotency(void);
|
||||
extern void test_apply_correctness_verification(void);
|
||||
extern void test_apply_pump(void);
|
||||
extern void test_apply_pump_integration(void);
|
||||
|
||||
void setUp(void) { return; }
|
||||
|
||||
|
|
@ -235,6 +236,7 @@ int main(int argc, char* argv[])
|
|||
TEST(test_apply_reapply_idempotency);
|
||||
TEST(test_apply_correctness_verification);
|
||||
TEST(test_apply_pump);
|
||||
TEST(test_apply_pump_integration);
|
||||
|
||||
return UNITY_END();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue