mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 23:03:57 -04:00
drm/tests: Add test case for drm_internal_framebuffer_create()
Introduce a test to cover the creation of framebuffer with modifier on a device that doesn't support it. Signed-off-by: Carlos Eduardo Gallo Filho <gcarlos@disroot.org> Link: https://patchwork.freedesktop.org/patch/msgid/20240911001559.28284-5-gcarlos@disroot.org Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
committed by
Maxime Ripard
parent
80f48b7d77
commit
fa90bc4988
@@ -415,8 +415,32 @@ static void drm_framebuffer_test_to_desc(const struct drm_framebuffer_test *t, c
|
||||
KUNIT_ARRAY_PARAM(drm_framebuffer_create, drm_framebuffer_create_cases,
|
||||
drm_framebuffer_test_to_desc);
|
||||
|
||||
/* Tries to create a framebuffer with modifiers without drm_device supporting it */
|
||||
static void drm_test_framebuffer_modifiers_not_supported(struct kunit *test)
|
||||
{
|
||||
struct drm_framebuffer_test_priv *priv = test->priv;
|
||||
struct drm_device *dev = &priv->dev;
|
||||
struct drm_framebuffer *fb;
|
||||
|
||||
/* A valid cmd with modifier */
|
||||
struct drm_mode_fb_cmd2 cmd = {
|
||||
.width = MAX_WIDTH, .height = MAX_HEIGHT,
|
||||
.pixel_format = DRM_FORMAT_ABGR8888, .handles = { 1, 0, 0 },
|
||||
.offsets = { UINT_MAX / 2, 0, 0 }, .pitches = { 4 * MAX_WIDTH, 0, 0 },
|
||||
.flags = DRM_MODE_FB_MODIFIERS,
|
||||
};
|
||||
|
||||
priv->buffer_created = false;
|
||||
dev->mode_config.fb_modifiers_not_supported = 1;
|
||||
|
||||
fb = drm_internal_framebuffer_create(dev, &cmd, NULL);
|
||||
KUNIT_EXPECT_EQ(test, priv->buffer_created, false);
|
||||
KUNIT_EXPECT_EQ(test, PTR_ERR(fb), -EINVAL);
|
||||
}
|
||||
|
||||
static struct kunit_case drm_framebuffer_tests[] = {
|
||||
KUNIT_CASE_PARAM(drm_test_framebuffer_create, drm_framebuffer_create_gen_params),
|
||||
KUNIT_CASE(drm_test_framebuffer_modifiers_not_supported),
|
||||
{ }
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user