Skip to content

Commit 43c0b68

Browse files
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

File tree

scripts/cov_omit_functions

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,3 @@
1111
# The interactive report (install/cov.html) has a per-function "Omit" button
1212
# that accumulates names locally and lets you download an updated copy of this
1313
# file to commit here.
14-
h2_yield

0 commit comments

Comments
 (0)