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

dangernoodle-io / breadboard / 30729327660
97%

Build:
DEFAULT BRANCH: main
Ran 02 Aug 2026 02:44AM UTC
Jobs 1
Files 213
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 02:42AM UTC coverage: 96.781%. Remained the same
30729327660

push

github

web-flow
fix: count distinct bb_data binding KEYS, not marker entries, in the codegen cap check (#1191)

binds_data=true was a boolean marker attribute: check_binds_data_cap
counted len([e for e in ordered if e.binds_data]), one per marker
entry regardless of how many bb_data_bind() calls that entry's fn
actually made. A function that binds several keys (e.g.
bb_sensor_http_init binds fan, power, and thermal) still counted as
1, so the check could pass a composition that was already over the
real BB_DATA_MAX_BINDINGS cap -- the pre-unwire examples/smoke shape
(7 marker entries covering 10 real binds against a cap of 8) is the
concrete case the old check could not have caught.

binds_data= is now a CSV key list (binds_data=fan,power,thermal),
the same shape provides=/requires= already use. check_binds_data_cap
counts the size of the UNION of every carrying entry's key list --
len({k for e in binders for k in e.binds_data}) -- not the sum of
per-entry key counts: bb_data_bind() looks a key up first and
overwrites the existing slot in place on a hit, only claiming a new
slot on a miss (components/bb_data/src/bb_data.c), so its table has
exactly one slot per DISTINCT key, and two entries legitimately
rebinding the same key consume one slot, not two. Summing raw key
occurrences instead of deduplicating would hard-fail a composition
that actually fits -- the mirror-image false positive of the
entry-counting undercount this check was rewritten to fix. Key
validation: non-empty, [A-Za-z0-9_.]+ charset (matches every real
bound key today), and a duplicate key within one marker is a hard
ParseError. A key repeated ACROSS two different entries is
deliberately left unflagged and still folds into the same slot in
the union count: bb_data_bind() documents rebinding an existing key
as a supported override (see components/bb_data/include/bb_data.h
and its callers), so it is a legitimate composition this grep-time
tool cannot distinguish from a mistake.

binds_data=true had ze... (continued)

8121 of 8694 branches covered (93.41%)

Branch coverage included in aggregate %.

13769 of 13924 relevant lines covered (98.89%)

2572.1 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30729327660.1 02 Aug 2026 02:44AM UTC 213
96.78
GitHub Action Run
Source Files on build 30729327660
  • Tree
  • List 213
  • 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 #30729327660
  • 2bdb0364 on github
  • Prev Build on main (#30728382348)
  • Next Build on main (#30729600680)
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