Documentation: kunit: add tips for running KUnit
authorDaniel Latypov <dlatypov@google.com>
Wed, 14 Apr 2021 22:22:56 +0000 (15:22 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 21 May 2021 19:25:45 +0000 (13:25 -0600)
commit11dbc62a73a7da9f3697e8ce83d07503c11dcabb
tree460a3b8d3d7ef1b4c0f1c97c292e75cb1e1053b4
parentd07f6ca923ea0927a1024dfccafc5b53b61cfecc
Documentation: kunit: add tips for running KUnit

This is long overdue.

There are several things that aren't nailed down (in-tree
.kunitconfig's), or partially broken (GCOV on UML), but having them
documented, warts and all, is better than having nothing.

This covers a bunch of the more recent features
* kunit_filter_glob
* kunit.py run --kunitconfig
* slightly more detail on building tests as modules
* CONFIG_KUNIT_DEBUGFS

By my count, the only headline features now not mentioned are the KASAN
integration and KernelCI json output support (kunit.py run --json).

And then it also discusses how to get code coverage reports under UML
and non-UML since this is a question people have repeatedly asked.

Non-UML coverage collection is no different from normal, but we should
probably explicitly call this out.

As for UML, I was able to get it working again with two small hacks.*
E.g. with CONFIG_KUNIT=y && CONFIG_KUNIT_ALL_TESTS=y
  Overall coverage rate:
    lines......: 15.1% (18294 of 120776 lines)
    functions..: 16.8% (1860 of 11050 functions)

Note: this doesn't document --alltests since this is not stable yet.
Hopefully being run more frequently as part of KernelCI will help...

*Using gcc/gcov-6 and not using uml_abort() in os_dump_core().
I've documented these hacks in "Notes" but left TODOs for
brendanhiggins@google.com who tracked down the runtime issue in GCC.
To be clear: these are not issues specific to KUnit, but rather to UML.

Signed-off-by: Daniel Latypov <dlatypov@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Documentation/dev-tools/kunit/index.rst
Documentation/dev-tools/kunit/running_tips.rst [new file with mode: 0644]
Documentation/dev-tools/kunit/start.rst