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

sandialabs / LoQS / 39214298248
89%

Build:
DEFAULT BRANCH: main
Ran 19 Oct 2026 07:41AM UTC
Jobs 1
Files 84
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

19 Oct 2026 07:10AM UTC coverage: 90.773% (+0.6%) from 90.16%
39214298248

push

github

web-flow
Centralize checkpoint reads and writes in a crash-safe `CheckpointStore` (#146)

* Add black-box acceptance tests for checkpoint failures

Test checkpoint/resume through run() alone, so the tests outlive a
rewrite of the checkpoint code. Tests that fail today are strict xfails
naming their #144 item, so a fix flips them.

- Interrupt each checkpoint write site mid-write (shot and item level,
  serial and parallel), then resume and compare to a reference.
- Test #144 items 3, 6, 7, 8 and 10 through run() and resume.
- Add shared helpers: an h5py write recorder/injector, process-death
  simulation, an in-process executor and result comparisons.

* Add a crash-safe CheckpointStore for shot and item checkpoints

Add one storage layer for streamed checkpoint entries, so later changes
can move ProgramResults and MultiProgramRunner onto atomic writes,
strict reads and a single key-collision rule. Nothing calls it yet.

- CheckpointStore owns every checkpoint file name, writes payloads and
  snapshots through a temp file plus os.replace, and returns receipts
  of keys rather than values.
- The canonical file carries a commit marker of committed lengths,
  written last. Appends and consolidation trim any tail beyond it
  first, and readers never look past it, so an interrupted write
  leaves no partial or mispaired entries.
- keys, get, iter_items and missing share one index: per attribute,
  the canonical file wins, then payloads in name order.
- Strict reads raise CheckpointReadError naming a corrupt file; only
  lock contention is retried. consolidate stops on an unreadable
  payload, deleting nothing, and removes ledgers and orphaned temp
  files.
- The canonical decode cache is dropped when the file is replaced or a
  decode is cut short, and a nested view reads a ProgramResults kept
  inside an item-level store, refusing a cache stub.
- Add MemoryCheckpointStore, an in-memory twin; move two checkpoint
  helpers into streamingmerge; add unit, interrupt-sw... (continued)

3725 of 4326 branches covered (86.11%)

Branch coverage included in aggregate %.

11917 of 12906 relevant lines covered (92.34%)

0.92 hits per line

Coverage Regressions

Lines Coverage ∆ File
41
81.8
-1.65% internal/streamingmerge.py
23
92.61
2.48% core/quantumprogram.py
21
93.83
0.13% internal/serializable.py
12
92.9
6.62% core/programresults.py
10
97.16
2.06% tools/multiprogramrunner.py
7
95.35
-0.08% tools/monitor/state.py
3
91.56
-1.78% internal/swmrledger.py
1
96.58
0.05% tools/noisesweeptools.py
Jobs
ID Job ID Ran Files Coverage
1 39214298248.1 19 Oct 2026 07:41AM UTC 84
90.77
GitHub Action Run
Source Files on build 39214298248
  • Tree
  • List 84
  • Changed 9
  • Source Changed 0
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #39214298248
  • e416ef2d on github
  • Prev Build on main (#38005711025)
  • Next Build on main (#39262944539)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc