From 6eed1b5eb4ba09435c9b4cd63fb302121009c188 Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira Date: Wed, 26 Aug 2015 11:29:06 +0300 Subject: kms_addfb_basic: Require fb modifiers for unused field tests The drm core doesn't check unused fields of ADDFB2 for pre-FB_MODIFIERS userspace, so use igt_require_fb_modifiers(). Also, the size of the ioctl changed with the addition of the modifiers, so it is necessary to use the LOCAL_ version of it, otherwise some data may get truncated. v2: Improve commit message. (Thomas) Remove one spurious change to use LOCAL_DRM_IOCTL_ADDFB2. (Thomas) Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Thomas Wood --- tests/kms_addfb_basic.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'tests/kms_addfb_basic.c') diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c index 38af334c..9c3659d1 100644 --- a/tests/kms_addfb_basic.c +++ b/tests/kms_addfb_basic.c @@ -63,30 +63,40 @@ static void invalid_tests(int fd) f.fb_id = 0; } + f.flags = LOCAL_DRM_MODE_FB_MODIFIERS; + igt_subtest("unused-handle") { + igt_require_fb_modifiers(fd); + f.handles[1] = gem_bo_small; - igt_assert(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f) == -1 && + igt_assert(drmIoctl(fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f) == -1 && errno == EINVAL); f.handles[1] = 0; } igt_subtest("unused-pitches") { + igt_require_fb_modifiers(fd); + f.pitches[1] = 512; - igt_assert(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f) == -1 && + igt_assert(drmIoctl(fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f) == -1 && errno == EINVAL); f.pitches[1] = 0; } igt_subtest("unused-offsets") { + igt_require_fb_modifiers(fd); + f.offsets[1] = 512; - igt_assert(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f) == -1 && + igt_assert(drmIoctl(fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f) == -1 && errno == EINVAL); f.offsets[1] = 0; } igt_subtest("unused-modifier") { + igt_require_fb_modifiers(fd); + f.modifier[1] = LOCAL_I915_FORMAT_MOD_X_TILED; - igt_assert(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f) == -1 && + igt_assert(drmIoctl(fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f) == -1 && errno == EINVAL); f.modifier[1] = 0; } -- cgit v1.2.3