Commit 1757cc29 authored by Kees Cook's avatar Kees Cook Committed by Shuah Khan

Documentation: KUnit: Update filename best practices

Based on feedback from Linus[1] and follow-up discussions, change the
suggested file naming for KUnit tests.

Link: https://lore.kernel.org/lkml/CAHk-=wgim6pNiGTBMhP8Kd3tsB7_JTAuvNJ=XYd3wPvvk=OHog@mail.gmail.com/ [1]
Reviewed-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
Signed-off-by: default avatarKees Cook <kees@kernel.org>
Reviewed-by: default avatarDavid Gow <davidgow@google.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 8400291e
...@@ -188,15 +188,26 @@ For example, a Kconfig entry might look like: ...@@ -188,15 +188,26 @@ For example, a Kconfig entry might look like:
Test File and Module Names Test File and Module Names
========================== ==========================
KUnit tests can often be compiled as a module. These modules should be named KUnit tests are often compiled as a separate module. To avoid conflicting
after the test suite, followed by ``_test``. If this is likely to conflict with with regular modules, KUnit modules should be named after the test suite,
non-KUnit tests, the suffix ``_kunit`` can also be used. followed by ``_kunit`` (e.g. if "foobar" is the core module, then
"foobar_kunit" is the KUnit test module).
The easiest way of achieving this is to name the file containing the test suite Test source files, whether compiled as a separate module or an
``<suite>_test.c`` (or, as above, ``<suite>_kunit.c``). This file should be ``#include`` in another source file, are best kept in a ``tests/``
placed next to the code under test. subdirectory to not conflict with other source files (e.g. for
tab-completion).
Note that the ``_test`` suffix has also been used in some existing
tests. The ``_kunit`` suffix is preferred, as it makes the distinction
between KUnit and non-KUnit tests clearer.
So for the common case, name the file containing the test suite
``tests/<suite>_kunit.c``. The ``tests`` directory should be placed at
the same level as the code under test. For example, tests for
``lib/string.c`` live in ``lib/tests/string_kunit.c``.
If the suite name contains some or all of the name of the test's parent If the suite name contains some or all of the name of the test's parent
directory, it may make sense to modify the source filename to reduce redundancy. directory, it may make sense to modify the source filename to reduce
For example, a ``foo_firmware`` suite could be in the ``foo/firmware_test.c`` redundancy. For example, a ``foo_firmware`` suite could be in the
file. ``foo/tests/firmware_kunit.c`` file.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment