The pyEDAA.Reports Documentation
A collection of various (EDA tool-specific) report data formats.
Main Goals
This package provides abstract data models and specific implementations for report formats. The supported report formats are commonly used for any programming language or have a specifc context with Electronic Design Automation (EDA) tools. Examples are unit test summaries (like Ant JUnit XML), code coverage (like Cobertura) and documentation coverage reports.
While the data models and file format implementations can be used as a library, a CLI program pyedaa-report
will be
provided too. It allows reading, converting, concatenating, merging, transforming and writing report files.
Roadmap
It’s also planned to support console outputs from simulators and synthesis/implementation tools to create structured logs and reports for filtering and data extraction.
Report Formats
Code coverage measures used and unused code lines, statements, branches, etc. Depending on the programming language this is measured by instrumenting the code/binary and running the program, it’s test cases or simulating the code. In generate code coverage is a measure of test coverage. Unused code is not (yet) covered by tests.
The code coverage metric in percent is a ratio of used code versus all possibly usable code. A coverage of <100% indicates unused code. This can be dead code (unreachable) or untested code (⇒ needs more test cases).
Supported tools
Coverage.py / pytest-cov
Aldec Riviera-PRO
others tbd. (GHDL with enabled coverage)
Supported file formats
Cobertura
others tbd. (gcov)
Documentation coverage measures the presence of code documentation. It primarily counts for public language entities like publicly visible constants and variables, parameters, types, functions, methods, classes, modules, packages, etc. The documentation goal depends on the used coverage collection tool’s settings. E.g. usually, private language entities are not required to be documented.
The documentation coverage metric in percent is a ratio of documented language entity versus all documentation worthy langauge entities. A coverage of <100% indicates undocumented code.
Supported tools
docstr_coverage
others tbd. (GHDL)
Supported file formats
tbd.
Results of (unit) tests (also regression tests) are collected in machine readable summary files. Test cases are usually grouped by one or more test suites. Besides the test’s result (passed, failed, skipped, …) also the test’s outputs and durations are collected. Results can be visualized as a expandable tree structure.
The total number of testcases indicates the spend effort in testing and applying many test vectors. In combination with code coverage, it can be judged if the code has untested sections.
Supported features
Supported file formats
Supported tools
Consumers
This layer is used by:
Contributors
Patrick Lehmann (Maintainer)
Todo
add license texts here