kunit: Report the count of test suites in a module
authorJanusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Mon, 7 Aug 2023 10:23:54 +0000 (12:23 +0200)
committerShuah Khan <skhan@linuxfoundation.org>
Tue, 8 Aug 2023 19:46:05 +0000 (13:46 -0600)
commitc95e7c05c139b1a8a51d368bde57cf20ce931a98
tree2a23c1b7d8e984b118d00f2d43d19a998b699df4
parent1c9fd080dffe5e5ad763527fbc2aa3f6f8c653e9
kunit: Report the count of test suites in a module

According to KTAP specification[1], results should always start from a
header that provides a TAP protocol version, followed by a test plan with
a count of items to be executed.  That pattern should be followed at each
nesting level.  In the current implementation of the top-most, i.e., test
suite level, those rules apply only for test suites built into the kernel,
executed and reported on boot.  Results submitted to dmesg from kunit test
modules loaded later are missing those top-level headers.

As a consequence, if a kunit test module provides more than one test suite
then, without the top level test plan, external tools that are parsing
dmesg for kunit test output are not able to tell how many test suites
should be expected and whether to continue parsing after complete output
from the first test suite is collected.

Submit the top-level headers also from the kunit test module notifier
initialization callback.

v3: Fix new name of a structure moved to kunit namespace not updated in
    executor_test functions (lkp@intel.com).
v2: Use kunit_exec_run_tests() (Mauro, Rae), but prevent it from
    emitting the headers when called on load of non-test modules.

[1] https://docs.kernel.org/dev-tools/ktap.html#

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Rae Moar <rmoar@google.com>
Reviewed-by: Rae Moar <rmoar@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
include/kunit/test.h
lib/kunit/executor.c
lib/kunit/executor_test.c
lib/kunit/test.c