From: Ville Syrjälä <ville.syrj...@linux.intel.com>

Add "bad-rotation" subtest to make sure the kernel rejects some
invalid rotation values (0 and specifying multiple angles at one).

Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 tests/kms_rotation_crc.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 6cc15337fff9..e10a0a770437 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -237,6 +237,31 @@ static void wait_for_pageflip(int fd)
        igt_assert(drmHandleEvent(fd, &evctx) == 0);
 }
 
+static void test_bad_prop_value(data_t *data)
+{
+       igt_display_t *display = &data->display;
+       int valid_tests = 0;
+       enum pipe pipe;
+       igt_plane_t *plane;
+       int ret;
+
+       for_each_pipe(display, pipe)  {
+               for_each_plane_on_pipe(display, pipe, plane) {
+                       igt_require(igt_plane_supports_rotation(plane));
+
+                       ret = drmModeObjectSetProperty(display->drm_fd,
+                                                      
plane->drm_plane->plane_id,
+                                                      DRM_MODE_OBJECT_PLANE,
+                                                      plane->rotation_property,
+                                                      data->rotation);
+
+                       igt_assert_eq(ret, -EINVAL);
+                       valid_tests++;
+               }
+       }
+       igt_require_f(valid_tests, "no valid crtc/connector combinations 
found\n");
+}
+
 static void test_plane_rotation(data_t *data, enum igt_plane plane_type)
 {
        igt_display_t *display = &data->display;
@@ -508,6 +533,14 @@ igt_main
 
                igt_display_init(&data.display, data.gfx_fd);
        }
+       igt_subtest_f("bad-rotation") {
+               data.rotation = 0;
+               test_bad_prop_value(&data);
+
+               data.rotation = IGT_ROTATION_0 | IGT_ROTATION_180;
+               test_bad_prop_value(&data);
+       }
+
        igt_subtest_f("primary-rotation-180") {
                data.rotation = IGT_ROTATION_180;
                test_plane_rotation(&data, IGT_PLANE_PRIMARY);
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to