Document API functions for suppressing warning backtraces.

Tested-by: Linux Kernel Functional Testing <l...@linaro.org>
Acked-by: Dan Carpenter <dan.carpen...@linaro.org>
Reviewed-by: Kees Cook <keesc...@chromium.org>
Signed-off-by: Guenter Roeck <li...@roeck-us.net>
---
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

Reply via email to