[PATCH i-g-t] tests/kms_rotation_crc: Add bad-rotation subtest

ville.syrjala
2016-07-20T13:18:13Z

From: Ville Syrjälä <ville.syrjala@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.syrjala@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

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org