[igt-dev] [PATCH i-g-t 2/2] tests/kms_pipe_crc_basic: Handle absent pipes for disable-crc-after-crtc
Petri Latvala
petri.latvala at intel.com
Thu Nov 19 10:47:52 UTC 2020
On Thu, Nov 19, 2020 at 09:43:18AM +0000, Chris Wilson wrote:
> Check that the output exists prior to use, and in doing so prevent the
> test from exploding (without leaving an intelligible trace) when the
> connector is randomly lost.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
> tests/kms_pipe_crc_basic.c | 16 +++++++++++-----
> 1 file changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
> index e584dca9b..b65649d3e 100644
> --- a/tests/kms_pipe_crc_basic.c
> +++ b/tests/kms_pipe_crc_basic.c
> @@ -71,6 +71,7 @@ static void test_read_crc(data_t *data, enum pipe pipe, unsigned flags)
> igt_crc_t *crcs = NULL;
> int c, j;
>
> + igt_require_pipe(display, pipe);
> igt_display_require_output_on_pipe(display, pipe);
> output = igt_get_single_output_for_pipe(display, pipe);
>
> @@ -224,14 +225,21 @@ static void test_compare_crc(data_t *data, enum pipe pipe)
> static void test_disable_crc_after_crtc(data_t *data, enum pipe pipe)
> {
> igt_display_t *display = &data->display;
> - igt_output_t *output = igt_get_single_output_for_pipe(&data->display, pipe);
> - igt_pipe_crc_t *pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, "auto");
> - drmModeModeInfo *mode = igt_output_get_mode(output);
> + igt_pipe_crc_t *pipe_crc;
> + drmModeModeInfo *mode;
> + igt_output_t *output;
> igt_crc_t crc[2];
>
> + igt_require_pipe(display, pipe);
> + igt_display_require_output_on_pipe(display, pipe);
> + output = igt_get_single_output_for_pipe(display, pipe);
> +
> + pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, "auto");
> +
> igt_display_reset(display);
> igt_output_set_pipe(output, pipe);
>
> + mode = igt_output_get_mode(output);
> igt_create_color_fb(data->drm_fd,
> mode->hdisplay, mode->vdisplay,
> DRM_FORMAT_XRGB8888,
> @@ -290,8 +298,6 @@ igt_main
> test_read_crc(&data, pipe, TEST_SEQUENCE | TEST_NONBLOCK);
>
> igt_subtest_f("suspend-read-crc-pipe-%s", kmstest_pipe_name(pipe)) {
> - igt_require_pipe(&data.display, pipe);
> -
> test_read_crc(&data, pipe, 0);
>
> igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
Looks ok so far. But what about compare-crc-sanitycheck-pipe-%s, it
doesn't call test_read_crc but test_compare_crc. That one does check
that the output is non-null but other than that doesn't check that the
pipe exists...
--
Petri Latvala
More information about the igt-dev
mailing list