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

arnavsacheti / PeakRDL-BusDecoder / 28823325135 / 1
92%
main: 92%

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

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)

1503 of 1628 relevant lines covered (92.32%)

0.92 hits per line

Source Files on job 28823325135.1
  • Tree
  • List 36
  • Changed 13
  • Source Changed 0
  • Coverage Changed 13
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 28823325135
  • 323fbd4b on github
  • Prev Job for on main (#24981337002.1)
  • Next Job for on main (#28897283299.1)
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