| From: Mark Brown <broonie@kernel.org> |
| Subject: selftest/mm: add helper for logging test start and results |
| Date: Thu, 22 May 2025 18:38:51 +0100 |
| |
| Several of the MM tests have a pattern of printing a description of the |
| test to be run then reporting the actual TAP result using a generic string |
| not connected to the specific test, often in a shared function used by |
| many tests. The name reported typically varies depending on the specific |
| result rather than the test too. This causes problems for tooling that |
| works with test results, the names reported with the results are used to |
| deduplicate tests and track them between runs so both duplicated names and |
| changing names cause trouble for things like UIs and automated bisection. |
| |
| As a first step towards matching these tests better with the expectations |
| of kselftest provide helpers which record the test name as part of the |
| initial print and then use that as part of reporting a result. |
| |
| This is not added as a generic kselftest helper partly because the use of |
| a variable to store the test name doesn't fit well with the header only |
| implementation of kselftest.h and partly because it's not really an |
| intended pattern. Ideally at some point the mm tests that use it will be |
| updated to not need it. |
| |
| Link: https://lkml.kernel.org/r/20250522-selftests-mm-cow-dedupe-v1-2-713cee2fdd6d@kernel.org |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Cc: David Hildenbrand <david@redhat.com> |
| Cc: Shuah Khan <shuah@kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| tools/testing/selftests/mm/vm_util.h | 20 ++++++++++++++++++++ |
| 1 file changed, 20 insertions(+) |
| |
| --- a/tools/testing/selftests/mm/vm_util.h~selftest-mm-add-helper-for-logging-test-start-and-results |
| +++ a/tools/testing/selftests/mm/vm_util.h |
| @@ -3,6 +3,7 @@ |
| #include <stdbool.h> |
| #include <sys/mman.h> |
| #include <err.h> |
| +#include <stdarg.h> |
| #include <strings.h> /* ffsl() */ |
| #include <unistd.h> /* _SC_PAGESIZE */ |
| #include "../kselftest.h" |
| @@ -95,6 +96,25 @@ static inline int open_self_procmap(stru |
| return open_procmap(pid, procmap_out); |
| } |
| |
| +/* These helpers need to be inline to match the kselftest.h idiom. */ |
| +static char test_name[1024]; |
| + |
| +static inline void log_test_start(const char *name, ...) |
| +{ |
| + va_list args; |
| + va_start(args, name); |
| + |
| + vsnprintf(test_name, sizeof(test_name), name, args); |
| + ksft_print_msg("[RUN] %s\n", test_name); |
| + |
| + va_end(args); |
| +} |
| + |
| +static inline void log_test_result(int result) |
| +{ |
| + ksft_test_result_report(result, "%s\n", test_name); |
| +} |
| + |
| /* |
| * On ppc64 this will only work with radix 2M hugepage size |
| */ |
| _ |