Re: [PATCH 00/10] drm: selftest: Convert to KUnit

From: David Gow
Date: Thu Jun 16 2022 - 10:55:27 EST


On Wed, Jun 15, 2022 at 9:59 PM Maíra Canal <maira.canal@xxxxxx> wrote:
>
> KUnit unifies the test structure and provides helper tools that simplify
> the development of tests. The basic use case allows running tests as regular
> processes, which makes it easier to run unit tests on a development machine
> and to integrate the tests into a CI system.
>
> That said, the conversion of selftests for DRM to KUnit tests is beneficial
> as it unifies the testing API by using the KUnit API.
>
> KUnit is beneficial for developers as it eases the process to run unit tests.
> It is possible to run the tests by using the kunit-tool on userspace with the
> following command:
>
> ./tools/testing/kunit/kunit.py run --kunitconfig=drivers/gpu/drm/tests --arch=x86_64
>
> For CI system, it is possible to execute during the build. But, we also think
> about IGT: we are developing a patch to introduce KUnit to IGT.
>
> These patches were developed during a KUnit hackathon [0] last October. Now,
> we believe that both the IGT side and the Kernel side are in good shape for
> submission.
>
> If you are willing to check the output, here is the Pastebin with the output
> and execution times [1].
>
> [0] https://groups.google.com/g/kunit-dev/c/YqFR1q2uZvk/m/IbvItSfHBAAJ
> [1] https://pastebin.com/FJjLPKsC
>
> - Arthur Grillo, Isabella Basso, and Maíra Canal

Great to see these going upstream!

I've tested them on my machine, both with x86_64 qemu and with UML using:
./tools/testing/kunit/kunit.py run
--kunitconfig=drivers/gpu/drm/tests/.kunitconfig \
--kconfig_add CONFIG_UML_PCI_OVER_VIRTIO=y \
--kconfig_add CONFIG_VIRTIO_UML=y

And all 114 tests pass, and everything looks good. My only minor notes
(from a quick look at the results, rather than a detailed review of
the code) are that the test names have a few small oddities:
- The suites all end in _tests (or _test, in the case of
drm_plane_helper_test). This is a bit redundant (and while there is
only one drm_plane_helper_test, the inconsistency with the others is a
bit awkward), so removing the suffix may be cleaner. (Or at least
being optimistic, and making drm_plane_helper_test plural.)
- The drm_cmdline_parser_tests suite's tests have some inconsistencies
name-wise: they're the only ones to start with drm_, not igt_, and
they have a few capital letters in some of the
'drm_cmdline_test_force_D_' tests. (It's also technically redundant to
start all of the test names with drm_cmdline_test, given the suite
name.)

Of course, if you're trying to keep compatibility with existing tests
or tooling, or there's some deeper reason they're named like this,
it's definitely not a dealbreaker.

Either way, this whole series is:

Tested-by: David Gow <davidgow@xxxxxxxxxx>

Cheers,
-- David