On Fri, 14 Feb 2025 at 22:53, Tamir Duberstein <tam...@gmail.com> 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