Thread (17 messages) 17 messages, 2 authors, 2025-03-07

Re: [PATCH v5 1/3] printf: convert self-test to KUnit

From: Petr Mladek <pmladek@suse.com>
Date: 2025-03-07 15:55:05
Also in: linux-doc, linux-kselftest, linux-m68k, lkml

On Thu 2025-03-06 09:41:44, Tamir Duberstein wrote:
On Thu, Mar 6, 2025 at 9:25 AM Tamir Duberstein [off-list ref] wrote:
quoted
On Thu, Mar 6, 2025 at 7:25 AM Petr Mladek [off-list ref] wrote:
quoted
On Fri 2025-02-21 15:34:30, Tamir Duberstein wrote:
quoted
Convert the printf() self-test to a KUnit test.

[...]
quoted
2. What was the motivation to remove the trailing '\n', please?

   It actually makes a difference from the printk() POV. Messages without
   the trailing '\n' are _not_ flushed to the console until another
   message is added. The reason is that they might still be appended
   by pr_cont(). And printk() emits only complete lines to the
   console.

   In general, messages should include the trailing '\n' unless the
   code wants to append something later or the trailing '\n' is
   added by another layer of the code. It does not seem to be this case.

quoted
                      bufsize, fmt, ret, elen);
-             return 1;
+             return;
      }
[...]
I noticed in my testing that the trailing \n didn't change the test
output, but I didn't know the details you shared about the trailing
\n. I'll restore them, unless we jump straight to the KUNIT macros per
the discussion above.
Ah, I forgot that `tc_fail` already delegates to KUNIT_FAIL. This was
the reason I removed the trailing newlines -- there is a mix of
present and absent trailing newlines in KUNIT_* macros, and it's not
clear to me what the correct thing is. For instance, the examples in
Documentation/dev-tools/kunit/{start,usage}.rst omit the trailing newlines.
Honestly, I am not able to find how the KUNIT_FAIL() actually prints
the message. I can't find how assert_format() is defined.

Anyway, it seems that for example, kunit_warn() prints the messages
as is in kunit_log(). It does not add the trailing '\n' on its own.

Also I do not see any empty lines when I add back the trailing '\n'
to KUNIT_FAIL() message. This suggests that even KUNIT_FAIL()
prints the messages as is and does not add any extra trailing '\n'.

In my opinion, using the trailing '\n' is the right thing to do
from the printk() POV. Please, add it back.

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