kselftest: add support for skipped tests

Update the kselftest framework to allow client drivers to
specify that some tests were skipped.

Signed-off-by: Timur Tabi <timur@kernel.org>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Tested-by: Petr Mladek <pmladek@suse.com>
Acked-by: Marco Elver <elver@google.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20210214161348.369023-3-timur@kernel.org
This commit is contained in:
Timur Tabi 2021-02-14 10:13:47 -06:00 committed by Petr Mladek
parent 4e89a78779
commit d9d4de2309
1 changed files with 12 additions and 6 deletions

View File

@ -11,7 +11,8 @@
#define KSTM_MODULE_GLOBALS() \
static unsigned int total_tests __initdata; \
static unsigned int failed_tests __initdata
static unsigned int failed_tests __initdata; \
static unsigned int skipped_tests __initdata
#define KSTM_CHECK_ZERO(x) do { \
total_tests++; \
@ -21,11 +22,16 @@ static unsigned int failed_tests __initdata
} \
} while (0)
static inline int kstm_report(unsigned int total_tests, unsigned int failed_tests)
static inline int kstm_report(unsigned int total_tests, unsigned int failed_tests,
unsigned int skipped_tests)
{
if (failed_tests == 0)
pr_info("all %u tests passed\n", total_tests);
else
if (failed_tests == 0) {
if (skipped_tests) {
pr_info("skipped %u tests\n", skipped_tests);
pr_info("remaining %u tests passed\n", total_tests);
} else
pr_info("all %u tests passed\n", total_tests);
} else
pr_warn("failed %u out of %u tests\n", failed_tests, total_tests);
return failed_tests ? -EINVAL : 0;
@ -36,7 +42,7 @@ static int __init __module##_init(void) \
{ \
pr_info("loaded.\n"); \
selftest(); \
return kstm_report(total_tests, failed_tests); \
return kstm_report(total_tests, failed_tests, skipped_tests); \
} \
static void __exit __module##_exit(void) \
{ \