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=... [1] Reviewed-by: John Hubbard jhubbard@nvidia.com Signed-off-by: Kees Cook kees@kernel.org --- v3: additional clarification v2: https://lore.kernel.org/all/20240720165441.it.320-kees@kernel.org/ Cc: David Gow davidgow@google.com Cc: Brendan Higgins brendan.higgins@linux.dev Cc: Rae Moar rmoar@google.com Cc: John Hubbard jhubbard@nvidia.com Cc: Jonathan Corbet corbet@lwn.net Cc: Linus Torvalds torvalds@linux-foundation.org Cc: linux-kselftest@vger.kernel.org Cc: kunit-dev@googlegroups.com Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-hardening@vger.kernel.org --- Documentation/dev-tools/kunit/style.rst | 29 +++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/Documentation/dev-tools/kunit/style.rst b/Documentation/dev-tools/kunit/style.rst index b6d0d7359f00..eac81a714a29 100644 --- a/Documentation/dev-tools/kunit/style.rst +++ b/Documentation/dev-tools/kunit/style.rst @@ -188,15 +188,26 @@ For example, a Kconfig entry might look like: Test File and Module Names ==========================
-KUnit tests can often be compiled as a module. These modules should be named -after the test suite, followed by ``_test``. If this is likely to conflict with -non-KUnit tests, the suffix ``_kunit`` can also be used. +KUnit tests are often compiled as a separate module. To avoid conflicting +with regular modules, KUnit modules should be named after the test suite, +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 -``<suite>_test.c`` (or, as above, ``<suite>_kunit.c``). This file should be -placed next to the code under test. +Test source files, whether compiled as a separate module or an +``#include`` in another source file, are best kept in a ``tests/`` +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 -directory, it may make sense to modify the source filename to reduce redundancy. -For example, a ``foo_firmware`` suite could be in the ``foo/firmware_test.c`` -file. +directory, it may make sense to modify the source filename to reduce +redundancy. For example, a ``foo_firmware`` suite could be in the +``foo/tests/firmware_kunit.c`` file.
On Thu, 25 Jul 2024 at 04:14, Kees Cook kees@kernel.org wrote:
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=... [1] Reviewed-by: John Hubbard jhubbard@nvidia.com Signed-off-by: Kees Cook kees@kernel.org
Looks good to me. (And it seems like sphinx is okay with it, too, which is always nice.)
We normally take these changes in via the kunit tree, but if you want to try to push it through along with the naming changes, that's fine by me.
Reviewed-by: David Gow davidgow@google.com
Thanks, -- David
On Fri, Jul 26, 2024 at 03:14:36PM +0800, David Gow wrote:
On Thu, 25 Jul 2024 at 04:14, Kees Cook kees@kernel.org wrote:
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=... [1] Reviewed-by: John Hubbard jhubbard@nvidia.com Signed-off-by: Kees Cook kees@kernel.org
Looks good to me. (And it seems like sphinx is okay with it, too, which is always nice.)
We normally take these changes in via the kunit tree, but if you want to try to push it through along with the naming changes, that's fine by me.
Reviewed-by: David Gow davidgow@google.com
Hi! Just a quick check: I haven't seen this land in -next yet. Are you still planning to take this?
On 8/22/24 18:18, Kees Cook wrote:
On Fri, Jul 26, 2024 at 03:14:36PM +0800, David Gow wrote:
On Thu, 25 Jul 2024 at 04:14, Kees Cook kees@kernel.org wrote:
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=... [1] Reviewed-by: John Hubbard jhubbard@nvidia.com Signed-off-by: Kees Cook kees@kernel.org
Looks good to me. (And it seems like sphinx is okay with it, too, which is always nice.)
We normally take these changes in via the kunit tree, but if you want to try to push it through along with the naming changes, that's fine by me.
Reviewed-by: David Gow davidgow@google.com
Hi! Just a quick check: I haven't seen this land in -next yet. Are you still planning to take this?
I applied it yesterday to kunit next.
thanks, -- Shuah
linux-kselftest-mirror@lists.linaro.org