Commit 43c0b68
authored
Interactive coverage (#66)
* scripts: fix path parsing for cov.
Signed-off-by: Zeev Belinsky <zbelinsk@qti.qualcomm.com>
* coverage: interactive HTML report with per-test drill-down and call graphs
- New cov_html_report.py: generates single-file HTML from cov.rpt + cov.txt
- Sidebar: function list sorted by coverage %, filterable by name
- Disasm tab: annotated disassembly with exec (green) / noexec (red) packets
- Call Graph tab: tree (callers, func, callees) with SVG layout
- Right-click drag to pan; depth input to control tree depth
- Per-test filtering: shows only functions exercised by selected test
- Per-test view: dropdown to switch between global (all tests) and individual test
- Sidebar re-sorts by per-test coverage; call graph shows only exercised functions
- Makefile.coverage: reorganize coverage artifacts into cov/ subdir
- $(INSTALLPATH)/cov/cov_fns: generated from libh2kernel.a + libh2.a
- $(INSTALLPATH)/cov/cov.txt: merged per-test coverage
- $(INSTALLPATH)/cov/cov.rpt: coverage report
- $(INSTALLPATH)/cov.html: interactive report (stays at top level)
- merge_cov.py: read cov_fns from installpath/cov/; preserve continuation lines
- gen_cov_fns.pl: scan both libh2kernel.a and libh2.a; filter LLVM clones
- makefile: remove stale cov_fns target; h2_cov now builds cov.html
- Makefile.inc.test: update clean_top for new cov/ paths
Signed-off-by: Zeev Belinsky <zbelinsk@qti.qualcomm.com>
* coverage: add CI job to verify cov pipeline works end-to-end
Add a Coverage build and verify step to the CI workflow that runs
make cov TARGET=ref_cov to exercise the entire coveragepipeline (gen_cov_fns.pl, gen_cov_files.py, merge_cov.py, cov_rpt_tool,
cov_html_report.py). This ensures the pipeline doesn't silently break
during development.
Signed-off-by: Zeev Belinsky <zbelinsk@qti.qualcomm.com>
* Update notes.md
Signed-off-by: zbelinsk <zbelinsk@qti.qualcomm.com>
* coverage: omit list + trivial-function filter + in-report Omit button
Add scripts/cov_omit_functions, a source-controlled list of functions we
deliberately do not cover. gen_cov_fns.pl drops these names from cov_fns so
they never reach cov.txt / cov.rpt / cov.html.
cov_html_report.py:
- Filter trivial functions (<= 1 packet, always 0% or 100%) from the report.
- Treat committed omits (cov_omit_functions) as "just not in the coverage":
drop them from funcs so they never appear as a sidebar entry, call-graph
node/edge, per-test data, or a restorable item -- keeping the report
self-consistent even when run against a cov.rpt that still lists them.
- Per-function Omit button: session omits accumulate in localStorage, stay
flagged/restorable in both global and per-test views, and feed a downloadable
updated cov_omit_functions to commit.
Makefile.coverage: pass the omit file to gen_cov_fns.pl and cov_html_report.py,
and add the dependencies so editing the list regenerates the report.
Signed-off-by: Zeev Belinsky <zbelinsk@qti.qualcomm.com>
* Update cov_omit_functions
Signed-off-by: zbelinsk <zbelinsk@qti.qualcomm.com>
---------
Signed-off-by: Zeev Belinsky <zbelinsk@qti.qualcomm.com>
Signed-off-by: zbelinsk <zbelinsk@qti.qualcomm.com>1 parent 8a62ba7 commit 43c0b68
1 file changed
Lines changed: 0 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
0 commit comments