Files
PeakRDL-BusDecoder/tests
Copilot 4b87556135 Add comprehensive test suite for PeakRDL-BusDecoder with sub-block and integration tests (#6)
* Initial plan

* Add comprehensive test suite for PeakRDL-BusDecoder

- Added tests for utility functions (clog2, is_pow2, roundup_pow2, get_indexed_path)
- Added tests for body classes (Body, ForLoopBody, IfBody, CombinationalBody, StructBody)
- Added tests for code generators (DecodeLogicGenerator, StructGenerator)
- Added tests for DesignState configuration
- Added integration tests for BusDecoderExporter
- Added tests for APB4 interface generation
- Fixed conftest to properly handle RDLCompiler and temporary files
- All 56 tests passing

Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com>

* Format test files with ruff

Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com>
2025-10-23 22:26:03 -07:00
..
2025-10-10 22:30:59 -07:00

Unit tests

The bus decoder exporter now ships with a small unit test suite built around pytest. The tests exercise the Python implementation directly and use the systemrdl-compiler package to elaborate inline SystemRDL snippets.

Install dependencies

Create an isolated environment if desired and install the minimal requirements:

python -m pip install -r tests/requirements.txt

Running the suite

Invoke pytest from the repository root (or the tests directory) and point it at the unit tests:

pytest tests/unit

Pytest will automatically discover tests that follow the test_*.py naming pattern and can make use of the compile_rdl fixture defined in tests/unit/conftest.py to compile inline SystemRDL sources.