Hi,
This RFC is a preview of the progress we made in the KUnit hackathon[0]. This patch, made by Maíra and Arthur, converts the damage helper test from the original DRM selftest framework to use the KUnit framework.
[0] https://groups.google.com/g/kunit-dev/c/YqFR1q2uZvk/m/IbvItSfHBAAJ
The IGT part of this work can be found here: https://gitlab.freedesktop.org/isinyaaa/igt-gpu-tools/-/tree/introduce-kunit
We also have patches in progress converting the following tests: framebuffer, cmdline_parser, dp_mst_helper, rect and dma-buf. As soon as we sort out if this is the right way to proceed in both kernel and IGT side, the hackathon participants will submit them.
Below, a dmesg output followed by the IGT output of the damage helper test.
Thanks!
[ 32.502165] [IGT] kms_kunit: executing [ 32.896062] # Subtest: drm_damage_helper_tests [ 32.896115] 1..21 [ 32.906500] ok 1 - igt_damage_iter_no_damage [ 32.907957] ok 2 - igt_damage_iter_no_damage_fractional_src [ 32.922087] ok 3 - igt_damage_iter_no_damage_src_moved [ 32.926174] ok 4 - igt_damage_iter_no_damage_fractional_src_moved [ 32.931746] ok 5 - igt_damage_iter_no_damage_not_visible [ 32.935329] ok 6 - igt_damage_iter_no_damage_no_crtc [ 32.939826] ok 7 - igt_damage_iter_no_damage_no_fb [ 32.942118] ok 8 - igt_damage_iter_simple_damage [ 32.944158] ok 9 - igt_damage_iter_single_damage [ 32.945583] ok 10 - igt_damage_iter_single_damage_intersect_src [ 32.946565] ok 11 - igt_damage_iter_single_damage_outside_src [ 32.949206] ok 12 - igt_damage_iter_single_damage_fractional_src [ 32.952464] ok 13 - igt_damage_iter_single_damage_intersect_fractional_src [ 32.954321] ok 14 - igt_damage_iter_single_damage_outside_fractional_src [ 32.957147] ok 15 - igt_damage_iter_single_damage_src_moved [ 32.959162] ok 16 - igt_damage_iter_single_damage_fractional_src_moved [ 32.961100] ok 17 - igt_damage_iter_damage [ 32.963609] ok 18 - igt_damage_iter_damage_one_intersect [ 32.964913] ok 19 - igt_damage_iter_damage_one_outside [ 32.966389] ok 20 - igt_damage_iter_damage_src_moved [ 32.968279] ok 21 - igt_damage_iter_damage_not_visible [ 32.971710] # drm_damage_helper_tests: pass:21 fail:0 skip:0 total:21 [ 32.973887] # Totals: pass:21 fail:0 skip:0 total:21 [ 32.975511] ok 1 - drm_damage_helper_tests [ 33.051033] [IGT] kms_kunit: exiting, ret=0
IGT-Version: 1.26-g71e8eceb (x86_64) (Linux: 5.15.0-rc7amd-fix+ x86_64) [IGT] running 21 tests... [IGT] SUBTEST ok 1 - igt_damage_iter_no_damage [IGT] SUBTEST ok 2 - igt_damage_iter_no_damage_fractional_src [IGT] SUBTEST ok 3 - igt_damage_iter_no_damage_src_moved [IGT] SUBTEST ok 4 - igt_damage_iter_no_damage_fractional_src_moved [IGT] SUBTEST ok 5 - igt_damage_iter_no_damage_not_visible [IGT] SUBTEST ok 6 - igt_damage_iter_no_damage_no_crtc [IGT] SUBTEST ok 7 - igt_damage_iter_no_damage_no_fb [IGT] SUBTEST ok 8 - igt_damage_iter_simple_damage [IGT] SUBTEST ok 9 - igt_damage_iter_single_damage [IGT] SUBTEST ok 10 - igt_damage_iter_single_damage_intersect_src [IGT] SUBTEST ok 11 - igt_damage_iter_single_damage_outside_src [IGT] SUBTEST ok 12 - igt_damage_iter_single_damage_fractional_src [IGT] SUBTEST ok 13 - igt_damage_iter_single_damage_intersect_fractional_src [IGT] SUBTEST ok 14 - igt_damage_iter_single_damage_outside_fractional_src [IGT] SUBTEST ok 15 - igt_damage_iter_single_damage_src_moved [IGT] SUBTEST ok 16 - igt_damage_iter_single_damage_fractional_src_moved [IGT] SUBTEST ok 17 - igt_damage_iter_damage [IGT] SUBTEST ok 18 - igt_damage_iter_damage_one_intersect [IGT] SUBTEST ok 19 - igt_damage_iter_damage_one_outside [IGT] SUBTEST ok 20 - igt_damage_iter_damage_src_moved [IGT] SUBTEST ok 21 - igt_damage_iter_damage_not_visible [IGT] TEST SUCCEEDED ok 1 - drm_damage_helper_tests SUCCESS (0.465s)
Maíra Canal (1): drm: selftest: convert drm_damage_helper selftest to KUnit
drivers/gpu/drm/Kconfig | 13 ++ drivers/gpu/drm/Makefile | 2 +- drivers/gpu/drm/selftests/Makefile | 5 +- .../gpu/drm/selftests/drm_modeset_selftests.h | 21 -- .../drm/selftests/test-drm_damage_helper.c | 215 +++++++++--------- 5 files changed, 127 insertions(+), 129 deletions(-)