Re: [RFC PATCH 1/1] drm/format-helper: Add KUnit tests for drm_fb_xrgb8888_to_rgb332()

From: David Gow
Date: Thu Jun 02 2022 - 13:13:19 EST


On Mon, May 30, 2022 at 9:29 AM José Expósito <jose.exposito89@xxxxxxxxx> wrote:
>
> Hi Maxime,
>
> On Mon, May 30, 2022 at 03:11:58PM +0200, Maxime Ripard wrote:
> >
> > Hi,
> >
> > On Mon, May 30, 2022 at 12:20:17PM +0200, José Expósito wrote:
> > > Test the conversion from XRGB8888 to RGB332.
> > >
> > > What is tested?
> > >
> > > - Different values for the X in XRGB8888 to make sure it is ignored
> > > - Different clip values: Single pixel and full and partial buffer
> > > - Well know colors: White, black, red, green, blue, magenta, yellow
> > > and cyan
> > > - Other colors: Randomly picked
> > > - Destination pitch
> > >
> > > Suggested-by: Javier Martinez Canillas <javierm@xxxxxxxxxx>
> > > Signed-off-by: José Expósito <jose.exposito89@xxxxxxxxx>
> >
> > It looks mostly good to me, but I think we should Cc
> > kunit-dev@xxxxxxxxxxxxxxxx to have their feedback.
>
> Thanks a lot for the quick feedback.
>
> I just cc'ed kunit-dev@xxxxxxxxxxxxxxxx. For anyone joining the
> conversation, here is the link to the patch and the cover letter with
> some questions:
>
> https://lore.kernel.org/dri-devel/20220530102017.471865-1-jose.exposito89@xxxxxxxxx/T/
>
> >
> > > ---
> > > drivers/gpu/drm/Kconfig | 12 ++
> > > drivers/gpu/drm/Makefile | 3 +
> > > drivers/gpu/drm/drm_format_helper_test.c | 166 +++++++++++++++++++++++
> > > 3 files changed, 181 insertions(+)
> > > create mode 100644 drivers/gpu/drm/drm_format_helper_test.c
> > >
> > > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
> > > index e88c497fa010..d92be6faef15 100644
> > > --- a/drivers/gpu/drm/Kconfig
> > > +++ b/drivers/gpu/drm/Kconfig
> > > @@ -76,6 +76,18 @@ config DRM_KMS_HELPER
> > > help
> > > CRTC helpers for KMS drivers.
> > >
> > > +config DRM_FORMAR_HELPER_TEST
> > > + bool "drm_format_helper tests" if !KUNIT_ALL_TESTS
> > > + depends on DRM && KUNIT=y
> > > + select DRM_KMS_HELPER
> > > + default KUNIT_ALL_TESTS
> > > + help
> > > + KUnit tests for the drm_format_helper APIs. This option is not
> > > + useful for distributions or general kernels, but only for kernel
> > > + developers working on DRM and associated drivers.
> > > +
> > > + If in doubt, say "N".
> > > +
> >
> > AFAIK, kunit test cases are supposed to have a .kunitconfig too to
> > enable the kunit tests easily.
> >
> > Maxime
>
> A .kuniconfig example is present in the cover letter. (...)

FYI: it's also possible to run these tests under UML with the extra options:
CONFIG_VIRTIO_UML=y
CONFIG_UML_PCI_OVER_VIRTIO=y

I suspect it's probably better not to add those to your .kunitconfig,
as they're UML-specific and will therefore break other architectures,
but it does mean the tests can be run with, for example:

./tools/testing/kunit/kunit.py run --kunitconfig
drivers/gpu/drm/.kunitconfig --kconfig_add CONFIG_VIRTIO_UML=y
--kconfig_add CONFIG_UML_PCI_OVER_VIRTIO=y

Or, without the .kunitconfig:
./tools/testing/kunit/kunit.py run --kconfig_add CONFIG_DRM=y
--kconfig_add CONFIG_DRM_FORMAR_HELPER_TEST=y --kconfig_add
CONFIG_VIRTIO_UML=y --kconfig_add CONFIG_UML_PCI_OVER_VIRTIO=y
'drm-*'

Cheers,
-- David