[PATCH i-g-t] tests/kms_rotation_crc: Add bad-rotation subtest
ville.syrjala at linux.intel.com
ville.syrjala at linux.intel.com
Wed Jul 20 13:18:13 UTC 2016
From: Ville Syrjälä <ville.syrjala at 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 at 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
More information about the dri-devel
mailing list