[igt-dev] [PATCH v4 2/2] tests/kms_lease: Test Cleanup
Modem, Bhanuprakash
bhanuprakash.modem at intel.com
Tue Aug 9 08:57:33 UTC 2022
On Wed-03-08-2022 03:59 pm, Mohammed Thasleem wrote:
> Sanitize the system state before starting the subtest.
>
> v2: Minor changes.
> v3: Moved display reset and commit in to igt_subtest_with_dynamic_f.
>
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem at intel.com>
> ---
> tests/kms_lease.c | 25 ++++++++++++++++---------
> 1 file changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/tests/kms_lease.c b/tests/kms_lease.c
> index d734143c..1bfcd22a 100644
> --- a/tests/kms_lease.c
> +++ b/tests/kms_lease.c
> @@ -88,12 +88,12 @@ static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t con
> return igt_output_from_connector(display, &connector);
> }
>
> -static int prepare_crtc(lease_t *lease, uint32_t connector_id, uint32_t crtc_id)
> +static int prepare_crtc(lease_t *lease, data_t *data)
> {
> drmModeModeInfo *mode;
> igt_display_t *display = &lease->display;
> - igt_output_t *output = connector_id_to_output(display, connector_id);
> - enum pipe pipe = crtc_id_to_pipe(display, crtc_id);
> + igt_output_t *output = connector_id_to_output(display, data->connector_id);
Instead of using connector_id_to_output(), using data->output is the
best option to me.
lly, we don't need crtc_id_to_pipe() & pipe_to_crtc_id() as we have
data->pipe & data->crtc_id simultaneously.
> + enum pipe pipe = data->pipe;
> igt_plane_t *primary;
> int ret;
>
> @@ -136,7 +136,7 @@ static void cleanup_crtc(lease_t *lease, igt_output_t *output)
> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> igt_plane_set_fb(primary, NULL);
>
> - igt_output_set_pipe(output, PIPE_ANY);
> + igt_output_set_pipe(output, PIPE_NONE);
> igt_display_commit(display);
> }
>
> @@ -238,7 +238,7 @@ static void simple_lease(data_t *data)
> igt_display_require(&lease.display, lease.fd);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&lease, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&lease, data));
>
> /* Paint something attractive */
> paint_fb(lease.fd, &lease.primary_fb, "simple_lease",
> @@ -292,7 +292,7 @@ static void page_flip_implicit_plane(data_t *data)
> drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&data->master, data));
>
> /* sanity check */
> do_or_die(drmModePageFlip(data->master.fd, data->crtc_id,
> @@ -363,7 +363,7 @@ static void setcrtc_implicit_plane(data_t *data)
> drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&data->master, data));
>
> /* sanity check */
> do_or_die(drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
> @@ -404,7 +404,7 @@ static void cursor_implicit_plane(data_t *data)
> drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&data->master, data));
>
> /* sanity check */
> do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
> @@ -729,7 +729,7 @@ static void lease_revoke(data_t *data)
> igt_assert_eq(revoke_lease(data->master.fd, &mrl), 0);
>
> /* Try to use the leased objects */
> - ret = prepare_crtc(&lease, data->connector_id, data->crtc_id);
> + ret = prepare_crtc(&lease, data);
>
> /* Ensure that the expected error is returned */
> igt_assert_eq(ret, -ENOENT);
> @@ -1246,6 +1246,8 @@ igt_main
Please use igt_display_require_output() in igt_fixture to SKIP on
no-display configs.
Note: Few subtests in this IGT doesn't required output, so please
takecare of that case too.
- Bhanu
> for_each_pipe_with_valid_output(&data.master.display, p, output) {
> igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p),
> igt_output_name(output)) {
> + igt_display_reset(&data.master.display);
> + igt_display_commit(&data.master.display);
> run_test(&data, f->func, p, output);
> }
> }
> @@ -1279,4 +1281,9 @@ igt_main
> igt_describe("Tests all the uevent cases");
> igt_subtest("lease-uevent")
> lease_uevent(&data);
> +
> + igt_fixture {
> + igt_display_fini(&data.master.display);
> + close(data.master.fd);
> + }
> }
More information about the igt-dev
mailing list