test(job-array-single-wal-record): end-to-end fault-injection test for the live fence
New test_job_array_fence.c exercises the full Requirement 9.4-9.6 engage-refuse-clear-recover sequence through real production seams: forced array-expansion failure -> fence engages -> promotion refused at a real ha.c gate site -> zero partial elements visible -> a second, independent node's progress is unaffected -> clearing the failure and retrying self-heals the fence and re-opens promotion eligibility. Deliberately drives this through task 3.1's construction-phase (scratch-build) seam rather than the bulk-insert-phase seam: the bulk-insert seam has a known, separately-tested residual gap (an already-inserted element prefix can survive a mid-pass key_add() failure with no key_del to undo it), so asserting "no partial set" against it would misrepresent an already-documented open gap as resolved. That gap remains open and unowned (see tasks.md Implementation Notes) -- Phase 4 delivers the generic halt/fence/gate machinery for it, not the partial-visibility guarantee itself. Task 4.4 of job-array-single-wal-record (Requirements 9.4, 9.5, 9.6). This completes Phase 4 (Live Apply Resource Fence).
This commit is contained in:
parent
8cb8c25d4d
commit
1888498401
4 changed files with 526 additions and 1 deletions
|
|
@ -166,6 +166,7 @@ controller_unit_test_src = [
|
|||
'testsuite/test_apply_pump.c',
|
||||
'testsuite/test_apply_pump_integration.c',
|
||||
'testsuite/test_job_array_apply.c',
|
||||
'testsuite/test_job_array_fence.c',
|
||||
'ctrlstatus.c',
|
||||
'commit.c',
|
||||
'job.c',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue