• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

prisma-risk / tsoracle / 26430611421
95%

Build:
DEFAULT BRANCH: main
Ran 26 May 2026 03:36AM UTC
Jobs 1
Files 87
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

26 May 2026 03:30AM UTC coverage: 95.478% (-0.01%) from 95.49%
26430611421

push

github

web-flow
feat(driver-openraft): joiner gate and migration-on-next-write tests (#465)

This closes the migration-on-next-write half of the zero-downtime format
migration and adds the (currently latent) capability pre-check for
learner admission.

**Migration-on-next-write (`state_machine.rs`).** Earlier phases threaded
the process-shared active-write-version cell into the snapshot encoder,
so `build_snapshot` already stamps the cell at build time rather than a
hard-coded constant. This commit pins that with four tests so a
regression to a literal trips compilation/assertion immediately:

- `build_snapshot_stamps_active_write_version` — the persisted envelope's
  leading version byte (and the inner snapshot payload's leading byte)
  equal the accessor's value, asserted against `sm.active_write_version()`
  not a literal so the test stays correct after a future activation
  moves the cell forward.
- `old_version_snapshot_is_read_and_reemitted_at_active_version` — a
  snapshot persisted by one SM is recovered by a fresh SM and the next
  `build_snapshot` emits at the cell's current value. Honest about the
  seam: while `MIN_READABLE_VERSION == MAX_READABLE_VERSION ==
  BASELINE_WRITE_VERSION`, this exercises end-to-end at the only
  version that exists; a genuine cross-version rewrite becomes testable
  when a real higher version parser ships.
- `snapshot_codec_accepts_full_readable_range` — the framed codec
  accepts every version in `[MIN, MAX]` and rejects `MAX + 1` loudly.
- `active_write_version_survives_reopen_and_drives_writes` — the
  durable value is stable across reopen and is exactly what the
  subsequent build stamps.

**Joiner gate (`lifecycle/membership.rs`).** A pure capability
pre-check for learner admission, plus a thin enforcement wrapper.
LATENT on this branch: the admin path on the merged tree calls
`Raft::add_learner` directly, not the toolkit's wrapper. A future
admit caller that routes through `add_learner_gated` will turn this
into a live r... (continued)

114 of 121 new or added lines in 2 files covered. (94.21%)

12880 of 13490 relevant lines covered (95.48%)

395096.53 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
95.91
-0.05% crates/tsoracle-driver-openraft/src/state_machine.rs
2
96.83
-1.45% crates/tsoracle-driver-openraft/src/capabilities.rs
Jobs
ID Job ID Ran Files Coverage
1 26430611421.1 26 May 2026 03:36AM UTC 87
95.48
GitHub Action Run
Source Files on build 26430611421
  • Tree
  • List 87
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26430611421
  • 4cbf252c on github
  • Prev Build on main (#26430322726)
  • Next Build on main (#26431025468)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc