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

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

From: Tamir Duberstein <hidden>
Date: 2025-02-19 20:58:46
Also in: linux-doc, linux-kselftest, linux-m68k, lkml

On Wed, Feb 19, 2025 at 3:41 PM Rasmus Villemoes
[off-list ref] wrote:
On Fri, 14 Feb 2025 at 22:53, Tamir Duberstein [off-list ref] wrote:
quoted
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.
They're both relevant -- `do_test` does a bunch of checks, so you want
to know which particular check failed, but also which invocation at
the top level resulted in that check failing.
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?
quoted
 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.
Good catch. Oddly I'm not able to reproduce any compiler complaints
here, even with the attribute completely removed.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help