summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2018-11-02 21:53:47 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2018-11-08 16:33:40 +0100
commitc901b0b022449ba75040b7deb1bf25f74b57768e (patch)
tree5d38afe6f71005851db1a3f2bba16a0049950b2c /tests
parentaf32a1fd19019f5628048bc18695790ce4c3dbcd (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')
-rw-r--r--tests/kms_lease.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index f4e1082cb..5d2f554d9 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 */