* 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>
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.