• Janusz Krzysztofik's avatar
    kunit: Make 'list' action available to kunit test modules · 18258c60
    Janusz Krzysztofik authored
    Results from kunit tests reported via dmesg may be interleaved with other
    kernel messages.  When parsing dmesg for modular kunit results in real
    time, external tools, e.g., Intel GPU tools (IGT), may want to insert
    their own test name markers into dmesg at the start of each test, before
    any kernel message related to that test appears there, so existing upper
    level test result parsers have no doubt which test to blame for a specific
    kernel message.  Unfortunately, kunit reports names of tests only at their
    completion (with the exeption of a not standarized "# Subtest: <name>"
    header above a test plan of each test suite or parametrized test).
    
    External tools could be able to insert their own "start of the test"
    markers with test names included if they new those names in advance.
    Test names could be learned from a list if provided by a kunit test
    module.
    
    There exists a feature of listing kunit tests without actually executing
    them, but it is now limited to configurations with the kunit module built
    in and covers only built-in tests, already available at boot time.
    Moreover, switching from list to normal mode requires reboot.  If that
    feature was also available when kunit is built as a module, userspace
    could load the module with action=list parameter, load some kunit test
    modules they are interested in and learn about the list of tests provided
    by those modules, then unload them, reload the kunit module in normal mode
    and execute the tests with their lists already known.
    
    Extend kunit module notifier initialization callback with a processing
    path for only listing the tests provided by a module if the kunit action
    parameter is set to "list" or "list_attr".  For user convenience, make the
    kunit.action parameter visible in sysfs.
    
    v2: Don't use a different format, use kunit_exec_list_tests() (Rae),
      - refresh on top of new attributes patches, handle newly introduced
        kunit.action=list_attr case (Rae).
    Signed-off-by: default avatarJanusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
    Cc: Rae Moar <rmoar@google.com>
    Reviewed-by: default avatarDavid Gow <davidgow@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    18258c60
test.h 53 KB