[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