On Wed, 3 Apr 2024 at 21:19, Guenter Roeck <linux@xxxxxxxxxxxx> wrote: > > Document API functions for suppressing warning backtraces. > > Tested-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx> > Acked-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> > Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx> > --- This looks good to me: thanks for adding the documentation! If we add integration between this and the KUnit resource system, we'll need to add that to this documentation. I wonder if it would make sense to have an example where the DEFINE_SUPPRESSED_WARNING() is global, e.g., in the test init/exit functions. That might overcomplicate it a bit. It also might be nice to document the individual macros with kerneldoc comments. (Though, that could equally fit in patch #1). Still, this is the most important bit, so I'm happy to have it as-is. Reviewed-by: David Gow <davidgow@xxxxxxxxxx> Cheers, -- David > v2: > - Rebased to v6.9-rc1 > - Added Tested-by:, Acked-by:, and Reviewed-by: tags > v3: > - Rebased to v6.9-rc2 > > Documentation/dev-tools/kunit/usage.rst | 30 ++++++++++++++++++++++++- > 1 file changed, 29 insertions(+), 1 deletion(-) > > diff --git a/Documentation/dev-tools/kunit/usage.rst b/Documentation/dev-tools/kunit/usage.rst > index 22955d56b379..8d3d36d4103d 100644 > --- a/Documentation/dev-tools/kunit/usage.rst > +++ b/Documentation/dev-tools/kunit/usage.rst > @@ -157,6 +157,34 @@ Alternatively, one can take full control over the error message by using > if (some_setup_function()) > KUNIT_FAIL(test, "Failed to setup thing for testing"); > > +Suppressing warning backtraces > +------------------------------ > + > +Some unit tests trigger warning backtraces either intentionally or as side > +effect. Such backtraces are normally undesirable since they distract from > +the actual test and may result in the impression that there is a problem. > + > +Such backtraces can be suppressed. To suppress a backtrace in some_function(), > +use the following code. > + > +.. code-block:: c > + > + static void some_test(struct kunit *test) > + { > + DEFINE_SUPPRESSED_WARNING(some_function); > + > + START_SUPPRESSED_WARNING(some_function); > + trigger_backtrace(); > + END_SUPPRESSED_WARNING(some_function); > + } > + > +SUPPRESSED_WARNING_COUNT() returns the number of suppressed backtraces. If the > +suppressed backtrace was triggered on purpose, this can be used to check if > +the backtrace was actually triggered. > + > +.. code-block:: c > + > + KUNIT_EXPECT_EQ(test, SUPPRESSED_WARNING_COUNT(some_function), 1); > > Test Suites > ~~~~~~~~~~~ > @@ -857,4 +885,4 @@ For example: > dev_managed_string = devm_kstrdup(fake_device, "Hello, World!"); > > // Everything is cleaned up automatically when the test ends. > - } > \ No newline at end of file > + } > -- > 2.39.2 >
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature