drm/doc: Add KUnit documentation
authorJosé Expósito <jose.exposito89@gmail.com>
Mon, 20 Jun 2022 16:06:40 +0000 (18:06 +0200)
committerJosé Expósito <jose.exposito89@gmail.com>
Mon, 27 Jun 2022 11:46:03 +0000 (13:46 +0200)
Explain how to run the KUnit tests present in the DRM subsystem and
clarify why the UML-only options were not added to the configuration
file present in drivers/gpu/drm/.kunitconfig [1] [2].

[1] https://lore.kernel.org/dri-devel/CABVgOSn8i=LO5p7830h2XU1Jgg0KrN0qTnxkOMhf1oTgxjaKKw@mail.gmail.com/
[2] https://lore.kernel.org/dri-devel/CAGS_qxqpiCim_sy1LDK7PLwVgWf-LKW+uNFTGM=T7ydk-dYcEw@mail.gmail.com/

Reviewed-by: Maxime Ripard <maxime@cerno.tech>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: David Gow <davidgow@google.com>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220620160640.3790-4-jose.exposito89@gmail.com
Documentation/gpu/drm-internals.rst

index 38afed2..5fd20a3 100644 (file)
@@ -207,6 +207,38 @@ Utilities
    :internal:
 
 
+Unit testing
+============
+
+KUnit
+-----
+
+KUnit (Kernel unit testing framework) provides a common framework for unit tests
+within the Linux kernel.
+
+This section covers the specifics for the DRM subsystem. For general information
+about KUnit, please refer to Documentation/dev-tools/kunit/start.rst.
+
+How to run the tests?
+~~~~~~~~~~~~~~~~~~~~~
+
+In order to facilitate running the test suite, a configuration file is present
+in ``drivers/gpu/drm/tests/.kunitconfig``. It can be used by ``kunit.py`` as
+follows:
+
+.. code-block:: bash
+
+       $ ./tools/testing/kunit/kunit.py run --kunitconfig=drivers/gpu/drm/tests \
+               --kconfig_add CONFIG_VIRTIO_UML=y \
+               --kconfig_add CONFIG_UML_PCI_OVER_VIRTIO=y
+
+.. note::
+       The configuration included in ``.kunitconfig`` should be as generic as
+       possible.
+       ``CONFIG_VIRTIO_UML`` and ``CONFIG_UML_PCI_OVER_VIRTIO`` are not
+       included in it because they are only required for User Mode Linux.
+
+
 Legacy Support Code
 ===================