From c901b0b022449ba75040b7deb1bf25f74b57768e Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Fri, 2 Nov 2018 21:53:47 +0100 Subject: 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 Signed-off-by: Daniel Vetter --- tests/kms_lease.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests/kms_lease.c') 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 */ -- cgit v1.2.3