diff options
author | Dave Airlie <airlied@redhat.com> | 2017-10-13 08:09:37 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2017-10-13 08:09:37 +0100 |
commit | d6b37e9f0d206d3ef34667b2daca4ee59149e9df (patch) | |
tree | 78d0f68800ff64df08237abc2c52ab154dfb4ecf | |
parent | ac12eba07f1d6fad151aa792ddf8c8ad6fe2ac3b (diff) |
kms_lease: test subleasing fails
-rw-r--r-- | tests/kms_lease.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/kms_lease.c b/tests/kms_lease.c index 7bd81fa3..55867a2b 100644 --- a/tests/kms_lease.c +++ b/tests/kms_lease.c @@ -542,6 +542,29 @@ static void lease_again(data_t *data) terminate_lease(&lease_b); } +/* Test subleasing fails */ +static void lease_sublease_illegal(data_t *data) +{ + lease_t lease; + uint32_t object_ids[3]; + struct local_drm_mode_create_lease mcl; + + /* Create a valid lease */ + igt_assert_eq(make_lease(data, &lease), 0); + + mcl.object_ids = (uint64_t) (uintptr_t) &object_ids[0]; + mcl.object_count = 0; + mcl.flags = O_CLOEXEC; + + object_ids[mcl.object_count++] = data->connector_id; + object_ids[mcl.object_count++] = data->crtc_id; + object_ids[mcl.object_count++] = data->primary_plane_id; + + igt_assert_eq(create_lease(lease.fd, &mcl), -EINVAL); + + terminate_lease(&lease); +} + /* Test leasing an invalid connector */ static void lease_invalid_connector(data_t *data) { @@ -662,6 +685,7 @@ igt_main { "lease_revoke", lease_revoke }, { "lease_revoke_illegal", lease_revoke_illegal }, { "lease_again", lease_again }, + { "lease_sublease_illegal", lease_sublease_illegal }, { "lease_invalid_connector", lease_invalid_connector }, { "lease_invalid_crtc", lease_invalid_crtc }, { "lease_create_zero_objects", lease_create_zero_objects }, |