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: John Hubbard <jhubbard@nvidia.com>
Signed-off-by: Kees Cook <kees@kernel.org>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
Kees Cook 2024-07-24 13:13:57 -07:00 committed by Shuah Khan
parent 8400291e28
commit 1757cc292a

View File

@ -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.