lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <24652725-91d8-9db4-e14a-e1bb5ded87b1@gmail.com>
Date:   Thu, 3 Feb 2022 21:41:45 -0600
From:   Frank Rowand <frowand.list@...il.com>
To:     Rob Herring <robh+dt@...nel.org>
Cc:     Naresh Kamboju <naresh.kamboju@...aro.org>,
        Brendan Higgins <brendanhiggins@...gle.com>,
        Anders Roxell <anders.roxell@...aro.org>,
        devicetree@...r.kernel.org,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/1] of: unittest: print pass messages at same loglevel as
 fail

On 2/3/22 3:40 PM, Rob Herring wrote:
> On Thu, Feb 3, 2022 at 3:12 PM <frowand.list@...il.com> wrote:
>>
>> From: Frank Rowand <frank.rowand@...y.com>
>>
>> Printing the devicetree unittest pass message for each passed test
>> creates much console verbosity.  The existing pass messages are
>> printed at loglevel KERN_DEBUG so they will not print by default.
>>
>> Change default to print the pass messages at the same loglevel as
>> the fail messages.
>>
>> The test community expects either a pass or a fail message for each
>> test in a test suite.  The messages are typically post-processed to
>> report pass/fail results.
>>
>> Suppressing printing the pass message for each individual test is
>> available via the kernel command line parameter unittest.hide_pass.
>>
>> Signed-off-by: Frank Rowand <frank.rowand@...y.com>
>> ---
>>  Documentation/admin-guide/kernel-parameters.txt |  4 ++++
>>  drivers/of/unittest.c                           | 17 ++++++++++++++++-
>>  2 files changed, 20 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
>> index f5a27f067db9..045455f9b7e1 100644
>> --- a/Documentation/admin-guide/kernel-parameters.txt
>> +++ b/Documentation/admin-guide/kernel-parameters.txt
>> @@ -5997,6 +5997,10 @@
>>                         Note that genuine overcurrent events won't be
>>                         reported either.
>>
>> +       unittest.hide_pass
> 
> Can we rename the module name to include 'dt' so we're not taking a
> generic name.

I got most of the way through writing a reply to the various questions, then got to
the point where my answer to a specific question ended up being something to the
effect of: "this line of code (where a change was suggested) will end up being
replaced when I convert the unittest messages to KTAP format".

Then I got sidelined by going back and re-reading the KTAP specification email
thread from August, then discovering that there is also a patch submission email
thread from December where a KTAP specification is accepted into the kernel tree.

Being KTAP compliant does not allow for suppressing the individual test pass
messages, so I think I should just drop my desire to be able to do so.  That
would reduce this patch to a one line change to print the pass messages at the
same loglevel as the fail messages.  And I would prefer to not worry about
whether the pass message is 'pass' vs 'PASS' since that text will get replaced
by the KTAP syntax anyway.

Would you be ok with that one line patch?

-Frank

> 
>> +                       Disable printing individual drivers/of/unittest test
>> +                       pass messages.
>> +
>>         unknown_nmi_panic
>>                         [X86] Cause panic on unknown NMI.
>>
>> diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
>> index 70992103c07d..2cfbdc6b29ac 100644
>> --- a/drivers/of/unittest.c
>> +++ b/drivers/of/unittest.c
>> @@ -12,6 +12,7 @@
>>  #include <linux/errno.h>
>>  #include <linux/hashtable.h>
>>  #include <linux/libfdt.h>
>> +#include <linux/module.h>
>>  #include <linux/of.h>
>>  #include <linux/of_address.h>
>>  #include <linux/of_fdt.h>
>> @@ -32,6 +33,19 @@
>>
>>  #include "of_private.h"
>>
>> +MODULE_LICENSE("GPL v2");
>> +static bool hide_pass;
>> +
>> +static int __init hide_pass_setup(char *str)
>> +{
>> +       hide_pass = true;
>> +       return 0;
>> +}
>> +
>> +early_param("hide_pass", hide_pass_setup);
>> +module_param(hide_pass, bool, 0);
>> +MODULE_PARM_DESC(hide_pass, "Disable printing individual of unittest pass messages");
>> +
>>  static struct unittest_results {
>>         int passed;
>>         int failed;
>> @@ -44,7 +58,8 @@ static struct unittest_results {
>>                 pr_err("FAIL %s():%i " fmt, __func__, __LINE__, ##__VA_ARGS__); \
>>         } else { \
>>                 unittest_results.passed++; \
>> -               pr_debug("pass %s():%i\n", __func__, __LINE__); \
>> +               if (!hide_pass) \
>> +                       pr_err("pass %s():%i\n", __func__, __LINE__); \
> 
> Would 'PASS' be better here to align with FAIL?
> 
> If we make this info level, then you can filter with dmesg and also
> seems to be aligned with what kunit does.
> 
> 
> Rob
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ