Thread (6 messages) 6 messages, 2 authors, 2025-02-19

Re: [PATCH v4 3/3] printf: implicate test line in failure messages

From: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Date: 2025-02-19 20:41:24
Also in: linux-doc, linux-kselftest, linux-m68k, lkml

On Fri, 14 Feb 2025 at 22:53, Tamir Duberstein [off-list ref] wrote:
This improves the failure output by pointing to the failing line at the
top level of the test, e.g.:
      # test_number: EXPECTATION FAILED at lib/printf_kunit.c:103
  lib/printf_kunit.c:167: vsnprintf(buf, 256, "%#-12x", ...) wrote '0x1234abcd  ', expected '0x1234abce  '
      # test_number: EXPECTATION FAILED at lib/printf_kunit.c:142
  lib/printf_kunit.c:167: kvasprintf(..., "%#-12x", ...) returned '0x1234abcd  ', expected '0x1234abce  '
Actually, I'm not sure that is an improvement as-is, with the two
different line numbers being printed. It takes some thought to
recognize which one is relevant and which one is not.

Can't we have a variant of KUNIT_FAIL that allows one to pass the
file/line info when the caller has better info than the location of
the KUNIT_FAIL itself?
 static void __printf(5, 0)
-do_test(struct kunit *kunittest, int bufsize, const char *expect, int elen,
-       const char *fmt, va_list ap)
+do_test(struct kunit *kunittest, const char *file, const int line, int bufsize, const char *expect,
+       int elen, const char *fmt, va_list ap)
This can't be right, the __printf attribute must be updated accordingly.

Rasmus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help