test(ha-heartbeat-committed-propagation): verify vote floor consumes heartbeat-raised committed safely (task 3.2)
Test-only: exercises the real ha_vote_self_freshness/handle_request_vote gate. A heartbeat raise via ha_observe_heartbeat_committed lifts the floor to max(durable=5, raised=9); candidate at 7 denied, at 9/12 granted; a lower heartbeat never lowers it. Discriminating constants fail under either regression (floor->durable-only or fold->min). No production/vote-path change (Req 3.2). 123/0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d534f83e46
commit
3b4656228e
4 changed files with 276 additions and 1 deletions
|
|
@ -39,7 +39,7 @@
|
|||
- _Requirements: 1.1, 3.4_
|
||||
- _Boundary: primary_heartbeat_fn_
|
||||
- _Depends: 1.2_
|
||||
- [ ] 3.2 Verify the vote-freshness floor consumes the fresher value safely
|
||||
- [x] 3.2 Verify the vote-freshness floor consumes the fresher value safely
|
||||
- Add an integration test proving the existing freshness gate, with `last_known_committed_lsn` raised by a heartbeat (via `ha_observe_heartbeat_committed`), rejects a vote candidate whose last-log LSN is below the raised floor and accepts one at/above it — confirming the floor formula `max(durable_floor, last_known_committed_lsn)` is read unchanged and is never lowered by this feature. No production change to the vote path.
|
||||
- Observable: the test shows the candidate-below-floor rejected and candidate-at/above-floor accepted after a heartbeat raise, and no edit to the floor formula.
|
||||
- _Requirements: 3.2_
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue