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

dangernoodle-io / breadboard / 30732036197
97%

Build:
DEFAULT BRANCH: main
Ran 02 Aug 2026 04:16AM UTC
Jobs 1
Files 214
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

02 Aug 2026 04:14AM UTC coverage: 96.853% (+0.01%) from 96.84%
30732036197

push

github

web-flow
feat: wire bb_task core-ownership declarations to bb_wdt core-claim mechanism (#1197)

bb_task_config_t gains core_owning, declaring cfg->core a CLAIMED pin
(vs. an advisory hint) for the bb_wdt core-claim mechanism landed in
PR1 (B1-1364). bb_task_resolve() rejects core_owning paired with
BB_TASK_CORE_ANY as BB_ERR_INVALID_ARG -- an owning task with no core
to own is a caller bug, not a degradation.

Pure-decision / side-effect split: bb_task_resolve() stays the
host-tested SSOT and now also decides STEERING -- an unaffinitized
request is steered away from a core bb_wdt already reports claimed
(bb_wdt_claimed_core_mask() + the pure bb_wdt_steer_core()). This
reads bb_wdt's live state, so the resolver is no longer mathematically
pure, but it performs no side effect of its own. The actual
bb_wdt_claim_core()/bb_wdt_release_core() calls -- real side effects
that reconfigure the Task WDT -- live only in the platform creation
shells (bb_task_espidf.c, bb_task_host.c) and in bb_task_deregister()
respectively, never inside the resolver.

The existing unicore clamp is the same mechanism that degrades a
core_owning claim to a no-op on a unicore target: an explicit owning
pin outside num_cores clamps to BB_TASK_CORE_ANY, and the shells only
call the claim primitive for a real (non-ANY) resolved core -- no new
failure mode.

Exclusivity of ownership is enforced ATOMICALLY: a new
bb_wdt_claim_core_exclusive() checks-and-sets the claimed-core bit
under bb_wdt's own lock, so two concurrent core_owning==true
bb_task_create() calls targeting the same core can never both
succeed. bb_task_resolve()'s claimed_core_mask check stays as a
fast-path / early error only (its snapshot is read before the real
claim and can go stale under concurrency) -- the creation shells call
bb_wdt_claim_core_exclusive() for every core_owning request, and
propagate its BB_ERR_INVALID_STATE out of bb_task_create() without
creating a task. bb_task_deregister() releases a live claim it
recorde... (continued)

8220 of 8784 branches covered (93.58%)

Branch coverage included in aggregate %.

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

13906 of 14061 relevant lines covered (98.9%)

2615.29 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30732036197.1 02 Aug 2026 04:16AM UTC 214
96.85
GitHub Action Run
Source Files on build 30732036197
  • Tree
  • List 214
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30732036197
  • 013c64a8 on github
  • Prev Build on main (#30730519955)
  • Next Build on main (#30733066031)
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