From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx> --- 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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel