On Tue Feb 24, 2026 at 10:56 PM JST, David Gow wrote:
> Le 24/02/2026 à 9:07 PM, 'Alexandre Courbot' via KUnit Development a écrit :
>> On Tue Feb 24, 2026 at 8:51 PM JST, Andreas Hindborg wrote:
>>> "Alexandre Courbot" <[email protected]> writes:
>>>
>>>> If `CONFIG_PRINTK` is not set, then the following warnings are issued
>>>> during build:
>>>>
>>>>    warning: unused variable: `args`
>>>>      --> ../rust/kernel/kunit.rs:16:12
>>>>      |
>>>>    16 | pub fn err(args: fmt::Arguments<'_>) {
>>>>      |            ^^^^ help: if this is intentional, prefix it with an 
>>>> underscore: `_args`
>>>>      |
>>>>      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by 
>>>> default
>>>>
>>>>    warning: unused variable: `args`
>>>>      --> ../rust/kernel/kunit.rs:32:13
>>>>      |
>>>>    32 | pub fn info(args: fmt::Arguments<'_>) {
>>>>      |             ^^^^ help: if this is intentional, prefix it with an 
>>>> underscore: `_args`
>>>>
>>>> Fix this by adding a no-op assignment using `args` when `CONFIG_PRINTK`
>>>> is not set.
>>>>
>>>> Fixes: a66d733da801 ("rust: support running Rust documentation tests as 
>>>> KUnit ones")
>>>> Signed-off-by: Alexandre Courbot <[email protected]>
>>>> ---
>>>> Changes in v2:
>>>> - Use a no-op assignment instead of the wider `#[allow(unused_variables)]`.
>>>> - Link to v1: 
>>>> https://patch.msgid.link/[email protected]
>>>> ---
>>>>   rust/kernel/kunit.rs | 8 ++++++++
>>>>   1 file changed, 8 insertions(+)
>>>>
>>>> diff --git a/rust/kernel/kunit.rs b/rust/kernel/kunit.rs
>>>> index f93f24a60bdd..a1edf7491579 100644
>>>> --- a/rust/kernel/kunit.rs
>>>> +++ b/rust/kernel/kunit.rs
>>>> @@ -14,6 +14,10 @@
>>>>   /// Public but hidden since it should only be used from KUnit generated 
>>>> code.
>>>>   #[doc(hidden)]
>>>>   pub fn err(args: fmt::Arguments<'_>) {
>>>> +    // `args` is unused if `CONFIG_PRINTK` is not set - this avoids a 
>>>> build-time warning.
>>>> +    #[cfg(not(CONFIG_PRINTK))]
>>>> +    let _ = args;
>>>
>>> I think (didn't test) that you can use a conditional attribute [1] instead:
>>>
>>>   pub fn err(
>>>       #[cfg_attr(not(CONFIG_PRINTK), expect(unused))]
>>>       args: fmt::Arguments<'_>
>>>   ) {
>> 
>> Yup, that works as well, and I think I like it better as it is more
>> localized. Alice, WDYT?
>> 
>
> Personally, I have a slight preference for the current `let _ = args` 
> option -- we'll still want to be able to format (at least some of) these 
> messages to the KUnit test log, even if printk is disabled. So in the 
> interest of avoiding churn in the function prototype, this version seems 
> more future-proof.

Sounds good - let's keep the current version then.

Reply via email to