summaryrefslogtreecommitdiff
path: root/tests/kms_lease.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/kms_lease.c')
-rw-r--r--tests/kms_lease.c38
1 files changed, 23 insertions, 15 deletions
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index 942eaf5b..e98c2a0f 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -426,6 +426,7 @@ static void lease_unleased_crtc(data_t *data)
lease_t lease;
enum pipe p;
uint32_t bad_crtc_id;
+ drmModeCrtc *crtc;
int ret;
/* Create a valid lease */
@@ -443,15 +444,22 @@ static void lease_unleased_crtc(data_t *data)
/* Give up if there isn't another crtc */
igt_skip_on(bad_crtc_id == 0);
- /* Attempt to use the unleased crtc id. Note that the
- * failure here is not directly from the kernel because the
- * resources returned from the kernel will not contain this resource
- * id and hence the igt helper functions will fail to find it
- */
- ret = prepare_crtc(&lease, data->connector_id, bad_crtc_id);
+ /* sanity check */
+ ret = drmModeSetCrtc(lease.fd, data->crtc_id, 0, 0, 0, NULL, 0, NULL);
+ igt_assert_eq(ret, 0);
+ crtc = drmModeGetCrtc(lease.fd, data->crtc_id);
+ igt_assert(crtc);
+ drmModeFreeCrtc(crtc);
- /* Ensure the expected error is returned */
+ /* Attempt to use the unleased crtc id. We need raw ioctl to bypass the
+ * igt_kms helpers.
+ */
+ ret = drmModeSetCrtc(lease.fd, bad_crtc_id, 0, 0, 0, NULL, 0, NULL);
igt_assert_eq(ret, -ENOENT);
+ crtc = drmModeGetCrtc(lease.fd, bad_crtc_id);
+ igt_assert(!crtc);
+ igt_assert_eq(errno, ENOENT);
+ drmModeFreeCrtc(crtc);
terminate_lease(&lease);
}
@@ -461,7 +469,7 @@ static void lease_unleased_connector(data_t *data)
lease_t lease;
int o;
uint32_t bad_connector_id;
- int ret;
+ drmModeConnector *c;
/* Create a valid lease */
igt_assert_eq(make_lease(data, &lease), 0);
@@ -478,15 +486,15 @@ static void lease_unleased_connector(data_t *data)
/* Give up if there isn't another connector */
igt_skip_on(bad_connector_id == 0);
+ /* sanity check */
+ c = drmModeGetConnector(lease.fd, data->connector_id);
+ igt_assert(c);
+
/* Attempt to use the unleased connector id. Note that the
- * failure here is not directly from the kernel because the
- * resources returned from the kernel will not contain this resource
- * id and hence the igt helper functions will fail to find it
*/
- ret = prepare_crtc(&lease, bad_connector_id, data->crtc_id);
-
- /* Ensure the expected error is returned */
- igt_assert_eq(ret, -ENOENT);
+ c = drmModeGetConnector(lease.fd, bad_connector_id);
+ igt_assert(!c);
+ igt_assert_eq(errno, ENOENT);
terminate_lease(&lease);
}