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

prisma-risk / tsoracle / 26324492135
95%

Build:
DEFAULT BRANCH: main
Ran 23 May 2026 05:26AM UTC
Jobs 1
Files 73
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

23 May 2026 05:22AM UTC coverage: 95.226% (+0.001%) from 95.225%
26324492135

push

github

web-flow
feat(yieldpoint): extract yield-point registry into `tsoracle-yieldpoint`, wire `tsoracle-server::fence` (#198)

Promotes the `yieldpoint` module that was introduced inside `tsoracle-driver-paxos` (#194) into a shared workspace crate so other consumers don't have to duplicate the registry. Layout follows `fail-rs`'s shape:

- `crates/tsoracle-yieldpoint/` holds the `OnceLock<Mutex<HashMap<&'static str, Arc<Notify>>>>` registry, the `cfg`/`remove`/`get` API, and the `#[macro_export]`'d `yieldpoint!` macro. Everything past the macro definition is gated on the crate's `yieldpoints` Cargo feature; with the feature off the macro expands to `{}` and the registry isn't linked.
- Consumer crates opt in by declaring `yieldpoints = ["tsoracle-yieldpoint/yieldpoints"]` and adding the crate as a regular dep. The call site uses `tsoracle_yieldpoint::yieldpoint!(...)` directly — no per-crate wrapper macro, unlike the `fail`-rs / per-crate `failpoint!` pattern.

Refactors `tsoracle-driver-paxos`:

- Deletes the in-tree `src/yieldpoint.rs` module and its `pub mod yieldpoint;` line.
- Adds the workspace dep + the `yieldpoints` feature passthrough.
- Updates the apply-task yield-point call site to `tsoracle_yieldpoint::yieldpoint!(...)`.
- Updates `tests/standalone_shutdown.rs` to `use tsoracle_yieldpoint as yieldpoint;` for the `cfg`/`remove` calls.

The existing `stop_delivers_shutdown_when_apply_task_is_mid_iteration` regression still passes under the refactor.

Adds the first `tsoracle-server` consumer:

- New `yieldpoints` feature on `tsoracle-server` (gated on `tsoracle-yieldpoint/yieldpoints`).
- New yield point `server::fence::after_load_before_persist` in `run_leader_watch`'s Leader branch, co-located with the sync failpoint of the same name. The sync failpoint stays for typed-error injection / panics; the async yield point covers cases that need to deliver a concurrent driver event (a follower transition or a second leader event at a different epoch) while th... (continued)

2 of 2 new or added lines in 2 files covered. (100.0%)

9554 of 10033 relevant lines covered (95.23%)

562512.97 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26324492135.1 23 May 2026 05:26AM UTC 73
95.23
GitHub Action Run
Source Files on build 26324492135
  • Tree
  • List 73
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26324492135
  • 20b1038d on github
  • Prev Build on main (#26324330806)
  • Next Build on main (#26324616640)
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