Commit d9d4de23 authored by Timur Tabi's avatar Timur Tabi Committed by Petr Mladek

kselftest: add support for skipped tests

Update the kselftest framework to allow client drivers to
specify that some tests were skipped.
Signed-off-by: default avatarTimur Tabi <timur@kernel.org>
Reviewed-by: default avatarPetr Mladek <pmladek@suse.com>
Tested-by: default avatarPetr Mladek <pmladek@suse.com>
Acked-by: default avatarMarco Elver <elver@google.com>
Signed-off-by: default avatarPetr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20210214161348.369023-3-timur@kernel.org
parent 4e89a787
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
#define KSTM_MODULE_GLOBALS() \ #define KSTM_MODULE_GLOBALS() \
static unsigned int total_tests __initdata; \ 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 { \ #define KSTM_CHECK_ZERO(x) do { \
total_tests++; \ total_tests++; \
...@@ -21,11 +22,16 @@ static unsigned int failed_tests __initdata ...@@ -21,11 +22,16 @@ static unsigned int failed_tests __initdata
} \ } \
} while (0) } 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) 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); pr_info("all %u tests passed\n", total_tests);
else } else
pr_warn("failed %u out of %u tests\n", failed_tests, total_tests); pr_warn("failed %u out of %u tests\n", failed_tests, total_tests);
return failed_tests ? -EINVAL : 0; return failed_tests ? -EINVAL : 0;
...@@ -36,7 +42,7 @@ static int __init __module##_init(void) \ ...@@ -36,7 +42,7 @@ static int __init __module##_init(void) \
{ \ { \
pr_info("loaded.\n"); \ pr_info("loaded.\n"); \
selftest(); \ selftest(); \
return kstm_report(total_tests, failed_tests); \ return kstm_report(total_tests, failed_tests, skipped_tests); \
} \ } \
static void __exit __module##_exit(void) \ static void __exit __module##_exit(void) \
{ \ { \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment