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

arnavsacheti / PeakRDL-BusDecoder / 28823325135
92%

Build:
DEFAULT BRANCH: main
Ran 06 Jul 2026 09:10PM UTC
Jobs 1
Files 36
Run time 2min
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

06 Jul 2026 09:07PM UTC coverage: 92.322% (+0.4%) from 91.972%
28823325135

push

github

web-flow
test: add cross-block integration suite verifying end-to-end decoder flow (#68)

* test: add cross-block integration suite verifying end-to-end decoder flow

The existing unit tests exercise each generator class in isolation and
mostly assert on substrings of the output. This adds tests/integration/,
which exports whole multi-block designs and checks that the generated
module works as a coherent system:

- A Python evaluator for the generated address decoder (helpers.route)
  feeds concrete addresses through the parsed if/else + for-loop
  structure and asserts every register address selects its enclosing
  block (and gap addresses select nothing), with expectations derived
  from the compiled SystemRDL tree rather than hardcoded strings.
- Cross-generator consistency checks: module ports, the cpuif_sel
  struct, fanout, fanin, decode targets, and package localparams must
  all agree on the same set of downstream blocks, for all six CPUIF
  flavors (APB3/APB4/AXI4-Lite, interface and flat).
- Hierarchy coverage: 2D arrays, regfile decode boundaries at
  max_decode_depth 2 and 0, sibling blocks, and cpuif_unroll.

Building the suite surfaced four real cross-generator bugs, documented
as strict xfails so they flip loudly when fixed:
- max_decode_depth=2 with sibling addrmap blocks emits duplicate leaf
  ports while decode/fanout reference undeclared mid-level ports
- registers shallower than max_decode_depth are decoded but dropped
  from the port list
- an arrayed register at the decode boundary is decoded as its whole
  parent regfile (invalid struct-to-bit assignment)
- cpuif_unroll=True unrolls ports but fanout still drives the rolled
  interface array

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TMFtybV4NhYwyMKNwVLkGn

* fix: make all generator stages agree on the decode boundary

Fixes the four cross-generator bugs surfaced by the integration suite
(tests/integration), plus one latent bug... (continued)

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

1 existing line in 1 file now uncovered.

1503 of 1628 relevant lines covered (92.32%)

0.92 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
98.15
-0.94% src/peakrdl_busdecoder/decode_logic_gen.py
Jobs
ID Job ID Ran Files Coverage
1 28823325135.1 06 Jul 2026 09:10PM UTC 36
92.32
GitHub Action Run
Source Files on build 28823325135
  • Tree
  • List 36
  • Changed 13
  • Source Changed 0
  • Coverage Changed 13
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 323fbd4b on github
  • Prev Build on main (#24981337002)
  • Next Build on main (#28897283299)
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