• Daniel Latypov's avatar
    Documentation: kunit: add tips for running KUnit · 11dbc62a
    Daniel Latypov authored
    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: default avatarDaniel Latypov <dlatypov@google.com>
    Reviewed-by: default avatarDavid Gow <davidgow@google.com>
    Reviewed-by: default avatarBrendan Higgins <brendanhiggins@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    11dbc62a
start.rst 6.39 KB