On Wed, Jun 15, 2022 at 9:59 PM Maíra Canal maira.canal@usp.br 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@google.com
Cheers, -- David