diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2018-11-02 21:53:47 +0100 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2018-11-08 16:33:40 +0100 |
commit | c901b0b022449ba75040b7deb1bf25f74b57768e (patch) | |
tree | 5d38afe6f71005851db1a3f2bba16a0049950b2c /tests/kms_lease.c | |
parent | af32a1fd19019f5628048bc18695790ce4c3dbcd (diff) |
tests/kms_lease: improve lesssee_list subtests
It failed to clear the pad, which made me realize that it's missing
a few paranoid checks.
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests/kms_lease.c')
-rw-r--r-- | tests/kms_lease.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/kms_lease.c b/tests/kms_lease.c index f4e1082c..5d2f554d 100644 --- a/tests/kms_lease.c +++ b/tests/kms_lease.c @@ -317,9 +317,17 @@ static void lessee_list(data_t *data) struct local_drm_mode_list_lessees mll; uint32_t lessees[1]; + mll.pad = 0; + /* Create a valid lease */ igt_assert_eq(make_lease(data, &lease), 0); + /* check for nested leases */ + mll.count_lessees = 0; + mll.lessees_ptr = 0; + igt_assert_eq(list_lessees(lease.fd, &mll), 0); + igt_assert_eq(mll.count_lessees, 0); + /* Get the number of lessees */ mll.count_lessees = 0; mll.lessees_ptr = 0; @@ -328,6 +336,9 @@ static void lessee_list(data_t *data) /* Make sure there's a single lessee */ igt_assert_eq(mll.count_lessees, 1); + /* invalid ptr */ + igt_assert_eq(list_lessees(data->master.fd, &mll), -EFAULT); + mll.lessees_ptr = (uint64_t) (uintptr_t) &lessees[0]; igt_assert_eq(list_lessees(data->master.fd, &mll), 0); @@ -338,7 +349,16 @@ static void lessee_list(data_t *data) /* Make sure the listed lease is the same as the one we created */ igt_assert_eq(lessees[0], lease.lessee_id); + /* invalid pad */ + mll.pad = -1; + igt_assert_eq(list_lessees(data->master.fd, &mll), -EINVAL); + mll.pad = 0; + terminate_lease(&lease); + + /* Make sure the lease is gone */ + igt_assert_eq(list_lessees(data->master.fd, &mll), 0); + igt_assert_eq(mll.count_lessees, 0); } /* Test getting the contents of a lease */ |