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

dangernoodle-io / breadboard / 30179116148
97%

Build:
DEFAULT BRANCH: main
Ran 25 Jul 2026 11:18PM UTC
Jobs 1
Files 199
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

25 Jul 2026 11:16PM UTC coverage: 96.499% (+0.001%) from 96.498%
30179116148

push

github

web-flow
fix: migrate bb_collection/bb_claim/bb_registry onto bb_lock_once_ensure() (#1086)

Each site guarded a fallible bb_lock_init() with the plain, non-fallible
bb_once_run(), discarding the failure -- bb_once_run() latches DONE
unconditionally, so a transient boot-OOM left a zero-inited bb_lock_t
and permanently bricked every future caller. bb_lock_once_ensure()
(#1082) retries instead of latching permanently done.

- bb_collection: collection_ensure_lock() now returns bb_err_t;
  bb_collection_add() propagates a lock-init failure to its own caller
  instead of proceeding unlocked; bb_collection_foreach()/_count()
  no-op/return-0 on lock failure (unchanged signatures)
- bb_claim: claim_ensure_lock() now returns bb_err_t; bb_claim_acquire()
  propagates the failure; bb_claim_release()/_holder()/_reset() no-op/
  return-null/NULL on lock failure
- bb_registry: registry_ensure_lock() now returns bb_err_t; register/
  deregister/register_ptr/deregister_ptr/get_by_index propagate the
  failure; freeze/foreach/foreach_ptr/count/lookup/lookup_ptr no-op/
  return default on lock failure
- the genuine bb_lock_init() failure branch is not host-reproducible (no
  fault injection); each new branch is LCOV_EXCL'd with the same
  rationale/style as bb_lock_once.c's own precedent -- not claiming
  coverage that does not exist
- updated bb_collection.h/bb_claim.h/bb_registry.h doc comments for the
  new possible lock-unavailable error/no-op on each affected function

Harden bb_registry_register_ptr/_deregister callers against this new
fallibility, so main never has the failure mode unguarded:
- bb_task_common.c bb_task_base_upsert()/_touch_or_insert() (plus the
  test-only race-injection call) now check bb_registry_register_ptr()'s
  return and pool_free_locked() the just-claimed slot on failure instead
  of discarding it -- previously the slot stayed in_use but unlinked
  from the registry, an unrecoverable pool-slot leak invisible to
  bb_task_base_foreach (never swe... (continued)

7770 of 8375 branches covered (92.78%)

Branch coverage included in aggregate %.

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

13233 of 13390 relevant lines covered (98.83%)

2672.17 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30179116148.1 25 Jul 2026 11:18PM UTC 199
96.5
GitHub Action Run
Source Files on build 30179116148
  • Tree
  • List 199
  • Changed 8
  • Source Changed 8
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30179116148
  • 469c01f8 on github
  • Prev Build on main (#30177522674)
  • Next Build on main (#30180543029)
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