[PATCH i-g-t] tests/kms_plane: Fix crash on fail and print out tested formats
Kamil Konieczny
kamil.konieczny at linux.intel.com
Wed May 7 13:03:10 UTC 2025
Hi Juha-Pekka,
On 2025-05-05 at 13:45:37 +0300, Juha-Pekka Heikkila wrote:
> Pixel format tests would crash out on failure, let's fix that.
>
> Earlier tested pixel formats were moved from igt_info to igt_debug, let's put
> igt_info back in place so it's easier for debug time to see what's going on.
>
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
Consider to write a little longer explanation, or even change subject,
about how it is fixing anything, as I understand it should fail early
after a CRC mismatch.
Otherwise, with or without more lenghty explanation
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> tests/kms_plane.c | 52 ++++++++++++++++++++++-------------------------
> 1 file changed, 24 insertions(+), 28 deletions(-)
>
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index d08ec81e4..f7b672c7a 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -887,9 +887,9 @@ static bool test_format_plane_rgb(data_t *data, enum pipe pipe,
> igt_crc_t ref_crc[],
> struct igt_fb *fb)
> {
> - igt_debug("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
> - IGT_FORMAT_ARGS(format), IGT_MODIFIER_ARGS(modifier),
> - kmstest_pipe_name(pipe), plane->index);
> + igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
> + IGT_FORMAT_ARGS(format), IGT_MODIFIER_ARGS(modifier),
> + kmstest_pipe_name(pipe), plane->index);
>
> return test_format_plane_colors(data, pipe, plane,
> format, modifier,
> @@ -925,13 +925,13 @@ static bool test_format_plane_yuv(data_t *data, enum pipe pipe,
> igt_color_range_to_str(r)))
> continue;
>
> - igt_debug("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT
> - " (%s, %s) on %s.%u\n", IGT_FORMAT_ARGS(format),
> - IGT_MODIFIER_ARGS(modifier),
> - igt_color_encoding_to_str(e),
> - igt_color_range_to_str(r),
> - kmstest_pipe_name(pipe),
> - plane->index);
> + igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT
> + " (%s, %s) on %s.%u\n", IGT_FORMAT_ARGS(format),
> + IGT_MODIFIER_ARGS(modifier),
> + igt_color_encoding_to_str(e),
> + igt_color_range_to_str(r),
> + kmstest_pipe_name(pipe),
> + plane->index);
>
> result &= test_format_plane_colors(data, pipe, plane,
> format, modifier,
> @@ -1029,7 +1029,7 @@ static bool skip_format_mod(data_t *data,
> return false;
> }
>
> -static bool test_format_plane(data_t *data, enum pipe pipe,
> +static void test_format_plane(data_t *data, enum pipe pipe,
> igt_output_t *output, igt_plane_t *plane, igt_fb_t *primary_fb)
> {
> struct igt_fb fb = {};
> @@ -1046,7 +1046,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
> * No clamping test for cursor plane
> */
> if (data->crop != 0 && plane->type == DRM_PLANE_TYPE_CURSOR)
> - return true;
> + return;
>
> igt_vec_init(&tested_formats, sizeof(struct format_mod));
>
> @@ -1059,7 +1059,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
> } else {
> if (!plane->drm_plane) {
> igt_debug("Only legacy cursor ioctl supported, skipping cursor plane\n");
> - return true;
> + return;
> }
> do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &width));
> do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_HEIGHT, &height));
> @@ -1073,9 +1073,9 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>
> igt_pipe_crc_start(data->pipe_crc);
>
> - igt_debug("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
> - IGT_FORMAT_ARGS(ref.format), IGT_MODIFIER_ARGS(ref.modifier),
> - kmstest_pipe_name(pipe), plane->index);
> + igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
> + IGT_FORMAT_ARGS(ref.format), IGT_MODIFIER_ARGS(ref.modifier),
> + kmstest_pipe_name(pipe), plane->index);
>
> check_allowed_plane_size_64x64(data, plane, &width, &height, ref.format);
>
> @@ -1107,12 +1107,12 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
> continue;
>
> if (skip_format_mod(data, f.format, f.modifier, &tested_formats)) {
> - igt_debug("Skipping format " IGT_FORMAT_FMT " / modifier "
> - IGT_MODIFIER_FMT " on %s.%u\n",
> - IGT_FORMAT_ARGS(f.format),
> - IGT_MODIFIER_ARGS(f.modifier),
> - kmstest_pipe_name(pipe),
> - plane->index);
> + igt_info("Skipping format " IGT_FORMAT_FMT " / modifier "
> + IGT_MODIFIER_FMT " on %s.%u\n",
> + IGT_FORMAT_ARGS(f.format),
> + IGT_MODIFIER_ARGS(f.modifier),
> + kmstest_pipe_name(pipe),
> + plane->index);
> continue;
> }
>
> @@ -1149,7 +1149,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>
> igt_vec_fini(&tested_formats);
>
> - return result;
> + igt_assert_f(result, "At least one CRC mismatch happened\n");
> }
>
> static bool skip_plane(data_t *data, igt_plane_t *plane)
> @@ -1195,7 +1195,6 @@ test_pixel_formats(data_t *data, enum pipe pipe)
> struct igt_fb primary_fb;
> igt_plane_t *primary;
> drmModeModeInfo *mode;
> - bool result;
> igt_output_t *output = data->output;
> igt_plane_t *plane;
>
> @@ -1225,12 +1224,11 @@ test_pixel_formats(data_t *data, enum pipe pipe)
>
> set_legacy_lut(data, pipe, LUT_MASK);
>
> - result = true;
> for_each_plane_on_pipe(&data->display, pipe, plane) {
> if (skip_plane(data, plane))
> continue;
> igt_dynamic_f("pipe-%s-plane-%u", kmstest_pipe_name(pipe), plane->index)
> - result &= test_format_plane(data, pipe, output, plane, &primary_fb);
> + test_format_plane(data, pipe, output, plane, &primary_fb);
> }
>
> test_fini(data);
> @@ -1242,8 +1240,6 @@ test_pixel_formats(data_t *data, enum pipe pipe)
> igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
>
> igt_remove_fb(data->drm_fd, &primary_fb);
> -
> - igt_assert_f(result, "At least one CRC mismatch happened\n");
> }
>
> static void test_planar_settings(data_t *data)
> --
> 2.45.2
>
More information about the igt-dev
mailing list