On 4/16/24 8:10 PM, Jakub Kicinski wrote: > Apparently it's more legal to pass the format as NULL, than > it is to use an empty string. Clang complains about empty > formats: > > ./../kselftest_harness.h:1207:30: warning: format string is empty > [-Wformat-zero-length] > 1207 | diagnostic ? "%s" : "", diagnostic); > | ^~ > 1 warning generated. > > Reported-by: Sean Christopherson <seanjc@xxxxxxxxxx> > Link: https://lore.kernel.org/all/20240409224256.1581292-1-seanjc@xxxxxxxxxx > Fixes: 378193eff339 ("selftests: kselftest_harness: let PASS / FAIL provide diagnostic") > Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx> Reviewed-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx> > --- > --- > CC: shuah@xxxxxxxxxx > CC: keescook@xxxxxxxxxxxx > CC: usama.anjum@xxxxxxxxxxxxx > CC: linux-kselftest@xxxxxxxxxxxxxxx > CC: llvm@xxxxxxxxxxxxxxx > --- > tools/testing/selftests/kselftest.h | 10 ++++++---- > tools/testing/selftests/kselftest_harness.h | 2 +- > 2 files changed, 7 insertions(+), 5 deletions(-) > > diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h > index 541bf192e30e..4eca3fd1292c 100644 > --- a/tools/testing/selftests/kselftest.h > +++ b/tools/testing/selftests/kselftest.h > @@ -288,15 +288,17 @@ void ksft_test_result_code(int exit_code, const char *test_name, > } > > /* Docs seem to call for double space if directive is absent */ > - if (!directive[0] && msg[0]) > + if (!directive[0] && msg) > directive = " # "; > > - va_start(args, msg); > printf("%s %u %s%s", tap_code, ksft_test_num(), test_name, directive); > errno = saved_errno; > - vprintf(msg, args); > + if (msg) { > + va_start(args, msg); > + vprintf(msg, args); > + va_end(args); > + } > printf("\n"); > - va_end(args); > } > > static inline int ksft_exit_pass(void) > diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h > index 4fd735e48ee7..adb15cae79ab 100644 > --- a/tools/testing/selftests/kselftest_harness.h > +++ b/tools/testing/selftests/kselftest_harness.h > @@ -1202,7 +1202,7 @@ void __run_test(struct __fixture_metadata *f, > diagnostic = "unknown"; > > ksft_test_result_code(t->exit_code, test_name, > - diagnostic ? "%s" : "", diagnostic); > + diagnostic ? "%s" : NULL, diagnostic); > } > > static int test_harness_run(int argc, char **argv) -- BR, Muhammad Usama Anjum