On Wed, Apr 14, 2021 at 8:45 AM Daniel Latypov dlatypov@google.com wrote:
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
I'm very happy with this now: all my issues with the previous versions are addressed. I'm particularly excited to have code coverage documented somewhere.
Assuming Brendan's happy with the TODOs being there, I think this is ready to go.
I also built this with Sphinx and gave it a quick look, and it all looks good there as well.
Therefore, this is:
Reviewed-by: David Gow davidgow@google.com
Cheers, -- David