Skip to content

drm/amd/display: Introduce KUnit to DML

Maíra Canal requested to merge kunit-prototype2 into kunit-mainline

KUnit unifies the test structure and provides helper tools that simplify the development. Basic use case allows running tests as regular processes, which makes easier to run unit tests on a development machine and to integrate the tests in a CI system.

For example, to execute all DRM unit tests: ./tools/testing/kunit/kunit.py run --kunitconfig=drivers/gpu/drm/amd/display/amdgpu_dm/tests (the tool also allows using QEMU instead of UML by adding e.g. --arch=x86_64)

Co-developed-by: Magali Lemes magalilemes00@gmail.com

Signed-off-by: Magali Lemes magalilemes00@gmail.com

Signed-off-by: Maíra Canal maira.canal@usp.br


Essa versão dos testes unitário compila como módulo. Ainda não foi testado em máquina, porque eu, essa semana, só consegui montar a PC e configurar o PC. Caso alguém tenha disponibilidade, seria interessante testar em máquina.

Essa forma de configuração dos testes unitários foi baseado nos testes unitários do Thunderbolt, que utilizam KUnit, e que, assim como nós, testam um dispositivo físico. Nós estavamos tendo problemas de compilação, porque kunit_test_suites() define um init_module() que já existe no amdgpu_drv. Esse problema é mais detalhado nessa thread: https://groups.google.com/g/kunit-dev/c/hbJbh8L37FU/m/EmszZE9qBAAJ.

O Thunderbolt, assim como nós, dessa forma para aumentar a "build covarage" para testes. Isso é explicitado aqui: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2c6ea4e2cefe2e86af782a5b8e1070f4d434f2f2

Possíveis pontos polêmicos:

  • Uso da amdgpu.h: creio que isso pode ser justificado, já que o trecho de código anterior ao modificado é relativo a display também.

OBS.: Desculpa Melissa por mandar patch no domingo à noite.

Merge request reports