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

dangernoodle-io / breadboard / 29166730397
95%

Build:
DEFAULT BRANCH: main
Ran 11 Jul 2026 08:17PM UTC
Jobs 1
Files 82
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

11 Jul 2026 08:16PM UTC coverage: 100.0%. Remained the same
29166730397

push

github

web-flow
feat: add multi-key transaction capability to bb_storage (#818)

- add bb_storage_txn_begin/set/commit/abort facade + bb_storage_txn_t
  caller-allocated handle, no heap (components/bb_storage)
- optional four-member txn vtable group (all-NULL or all-set, validated
  at registration, same pattern as get_typed/set_typed) — no sequential
  fallback, since that would violate atomicity
- implement nvs backend: generalizes bb_nv_batch_* (platform/espidf/bb_nv)
  into the generic vtable group, one nvs_handle_t held open across all
  staged writes, nvs_commit() at commit for atomicity + durability
- implement ram backend: txn-local slot buffering with a held-lock
  capacity pre-check at commit so a failing commit lands zero writes
- add BB_STORAGE_TXN_MAX_KEYS/VALUE_MAX_BYTES Kconfig knobs (C defaults
  3/64) and fixed BB_STORAGE_TXN_KEY_MAX_BYTES=32
- bb_nv_batch_* is unchanged and not superseded by this addition —
  migrating its callers onto the generic txn API is a later, separate PR
- sdcard/rtc backends are design-validated by this API shape but not
  built here (future PRs)
- host tests: facade contract against a fake backend + real ram-backend
  atomicity/rollback/overflow coverage
- add _Static_assert invariants tying BB_STORAGE_RAM_MAX_VALUE/KEY_BYTES
  to BB_STORAGE_TXN_VALUE/KEY_MAX_BYTES so a cross-Kconfig config that
  would overflow ram_txn_commit's static table is uncompilable
- add a host-testable NVS-primitive seam (bb_storage_nvs_txn_ops_t,
  BB_STORAGE_NVS_TESTING-gated) so nvs_txn_begin/set/commit/abort's
  open->set*->commit->close orchestration is covered on host against a
  fake, not just on-device — the seam is confined to the txn path only
- bb_storage_txn_commit now returns BB_ERR_INVALID_STATE on a closed txn
  (symmetric with txn_set), documented as distinct from txn_abort's
  deliberate idempotent no-op
- remove the NVS-specific `_ns` field from the shared bb_storage_txn_t
  (unused once the txn-primitive seam absorbed its one u... (continued)

3319 of 3319 branches covered (100.0%)

Branch coverage included in aggregate %.

5268 of 5268 relevant lines covered (100.0%)

9725.72 hits per line

Jobs
ID Job ID Ran Files Coverage
1 29166730397.1 11 Jul 2026 08:17PM UTC 82
100.0
GitHub Action Run
Source Files on build 29166730397
  • Tree
  • List 82
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29166730397
  • b16d4e9a on github
  • Prev Build on main (#29163525742)
  • Next Build on main (#29167481787)
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