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

dangernoodle-io / breadboard / 27800364247
100%

Build:
DEFAULT BRANCH: main
Ran 19 Jun 2026 01:47AM UTC
Jobs 1
Files 34
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

19 Jun 2026 01:46AM UTC coverage: 100.0%. Remained the same
27800364247

push

github

web-flow
jae/bb display active race (#462)

* fix: snapshot s_active to eliminate LoadProhibited race in bb_display

concurrent bb_display_off() on an OTA pause hook can null s_active
between the s_ready guard and the per-glyph blit deref in
bb_display_draw_text, causing a LoadProhibited panic (confirmed via
decoded backtrace at bb_display.c:216, TaipanMiner v0.30.0).

apply the local-snapshot pattern to all public functions that deref
s_active: clear, blit, flush, draw_text, set_rotation. the snapshot is
sufficient because s_active always points to a static-const backend
struct that is never freed; only the pointer variable itself races.

adds four host regression tests confirming the draw/blit/clear/flush
functions are safe no-ops after bb_display_off().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(bb_display): re-enable ssd1306/st77xx panels on bb_display_on (missing .on hook)

bb_display_on() calls s_panel->on() to physically re-enable the panel after
an OTA blanks it via bb_display_off(). SSD1306 and ST77xx backends defined
.off (disp_on_off false) but not .on, so panels stayed dark post-OTA. Added
matching .on handlers (disp_on_off true, backlight on for st77xx) wired in
all three backend structs: ssd1306, st7735, st7789. ILI9341 already had .on.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test(bb_display): cover set_rotation null-guard after off (B1-297)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test(bb_display): cover s_active null-guard race branches via seam (B1-297)

the 5 !a guards only fire with s_ready=true and s_active=NULL (the concurrent-off race window); bb_display_off() clears both, so added a BB_DISPLAY_TESTING seam to reproduce the window and one test that drives all five draw paths. branch coverage back to 100%.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

1628 of 1628 branches covered (100.0%)

Branch coverage included in aggregate %.

22 of 22 new or added lines in 1 file covered. (100.0%)

2722 of 2722 relevant lines covered (100.0%)

1207.82 hits per line

Jobs
ID Job ID Ran Files Coverage
1 27800364247.1 19 Jun 2026 01:47AM UTC 34
100.0
GitHub Action Run
Source Files on build 27800364247
  • Tree
  • List 34
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #27800364247
  • ec14db35 on github
  • Prev Build on main (#27799621556)
  • Next Build on main (#27800526395)
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