Documentation: kunit: Add clang UML coverage example
authorMichał Winiarski <michal.winiarski@intel.com>
Fri, 20 Oct 2023 09:21:59 +0000 (11:21 +0200)
committerRichard Weinberger <richard@nod.at>
Fri, 5 Jan 2024 15:28:56 +0000 (16:28 +0100)
LLVM-based toolchain is using a different set of tools for coverage.
Add an example that produces output in lcov format.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: David Gow <davidgow@google.com>
[rw: Added spelling fixes from David Gow]
Signed-off-by: Richard Weinberger <richard@nod.at>
Documentation/dev-tools/kunit/running_tips.rst

index 766f9cd..221c730 100644 (file)
@@ -139,6 +139,17 @@ If your installed version of gcc doesn't work, you can tweak the steps:
        $ ./tools/testing/kunit/kunit.py run --make_options=CC=/usr/bin/gcc-6
        $ lcov -t "my_kunit_tests" -o coverage.info -c -d .kunit/ --gcov-tool=/usr/bin/gcov-6
 
+Alternatively, LLVM-based toolchains can also be used:
+
+.. code-block:: bash
+
+       # Build with LLVM and append coverage options to the current config
+       $ ./tools/testing/kunit/kunit.py run --make_options LLVM=1 --kunitconfig=.kunit/ --kunitconfig=tools/testing/kunit/configs/coverage_uml.config
+       $ llvm-profdata merge -sparse default.profraw -o default.profdata
+       $ llvm-cov export --format=lcov .kunit/vmlinux -instr-profile default.profdata > coverage.info
+       # The coverage.info file is in lcov-compatible format and it can be used to e.g. generate HTML report
+       $ genhtml -o /tmp/coverage_html coverage.info
+
 
 Running tests manually
 ======================