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

dangernoodle-io / breadboard / 30779932476
97%

Build:
DEFAULT BRANCH: main
Ran 03 Aug 2026 02:44AM UTC
Jobs 1
Files 216
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

03 Aug 2026 02:42AM UTC coverage: 96.879% (+0.001%) from 96.878%
30779932476

push

github

web-flow
fix: put bb_wdt's idle-check masking entirely in excused polarity (#1213)

esp_task_wdt.h's idle_core_mask is MONITORED polarity (a set bit means that core's idle task IS watched). bb_wdt_derive_idle_mask() OR'd a core-claim bit directly into that mask while its own doc claimed the OR only ever ADDS an excused core -- the excuse never worked; claiming a core made it MORE monitored, not less. This was live via #1197's bb_task core_owning -> bb_wdt_claim_core_exclusive() wiring.

Moves bb_wdt's entire internal representation into EXCUSED polarity (bit set = this core's idle check is suppressed). The board's Kconfig-derived seed (still computed exactly as before, monitored polarity, mirroring ESP-IDF's own app_startup.c) is converted to excused polarity once per reconfigure via the new self-inverse bb_wdt_invert_core_mask() helper, composed with the claimed-core mask via a union (both operands now mean the same thing), then converted back to monitored polarity exactly once, immediately before building esp_task_wdt_config_t -- the only place in bb_wdt allowed to hold a monitored-polarity value.

Adds bb_wdt_excused_mask_t/bb_wdt_monitored_mask_t single-member wrapper structs so the two polarities cannot be implicitly interchanged by the compiler, closing the recurrence path. Documents the boot window: ESP-IDF's app_startup.c inits the TWDT from the same Kconfig symbols before app_main() runs; bb_wdt's value governs only from its first reconfigure onward.

BREAKING: renames bb_wdt_derive_idle_mask() -> bb_wdt_derive_excused_mask() (same union formula, now excused-polarity inputs) and bb_wdt_clamp_idle_mask() -> bb_wdt_clamp_core_mask() (unchanged pure range-truncation math). TaipanMiner v2's parked TA-562 branch is a known consumer of the old names.

bb_wdt_derive_excused_mask()'s second parameter is now typed bb_wdt_excused_mask_t rather than a bare uint32_t (B1-1408 review finding): a claim IS excused polarity by contract, so this closes a doc-vs-signatu... (continued)

8294 of 8858 branches covered (93.63%)

Branch coverage included in aggregate %.

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

14024 of 14179 relevant lines covered (98.91%)

2654.38 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30779932476.1 03 Aug 2026 02:44AM UTC 216
96.88
GitHub Action Run
Source Files on build 30779932476
  • Tree
  • List 216
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30779932476
  • 283f0862 on github
  • Prev Build on main (#30778412858)
  • Next Build on main (#30780431660)
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