[igt-dev] [PATCH i-g-t 4/6] tests/kms_invalid_mode: Test various bogus timings

Karthik B S karthik.b.s at intel.com
Tue Oct 5 10:22:41 UTC 2021


On 9/16/2021 9:05 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Make sure the mode gets rejected when some part of the timings
> is bogus.
>
> v2: Add even more tests
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Reviewed-by: Karthik B S <karthik.b.s at intel.com>
> ---
>   tests/i915/kms_invalid_mode.c | 93 ++++++++++++++++++++++++++++++++++-
>   1 file changed, 92 insertions(+), 1 deletion(-)
>
> diff --git a/tests/i915/kms_invalid_mode.c b/tests/i915/kms_invalid_mode.c
> index a1899bd52214..6d56a378d141 100644
> --- a/tests/i915/kms_invalid_mode.c
> +++ b/tests/i915/kms_invalid_mode.c
> @@ -100,6 +100,69 @@ adjust_mode_clock_too_high(data_t *data, drmModeModeInfoPtr mode)
>   	return true;
>   }
>   
> +static bool
> +adjust_mode_zero_clock(data_t *data, drmModeModeInfoPtr mode)
> +{
> +	mode->clock = 0;
> +	return true;
> +}
> +
> +static bool
> +adjust_mode_zero_hdisplay(data_t *data, drmModeModeInfoPtr mode)
> +{
> +	mode->hdisplay = 0;
> +	return true;
> +}
> +
> +static bool
> +adjust_mode_zero_vdisplay(data_t *data, drmModeModeInfoPtr mode)
> +{
> +	mode->vdisplay = 0;
> +	return true;
> +}
> +
> +static bool
> +adjust_mode_bad_hsync_start(data_t *data, drmModeModeInfoPtr mode)
> +{
> +	mode->hsync_start = mode->hdisplay - 1;
> +	return true;
> +}
> +
> +static bool
> +adjust_mode_bad_vsync_start(data_t *data, drmModeModeInfoPtr mode)
> +{
> +	mode->vsync_start = mode->vdisplay - 1;
> +	return true;
> +}
> +
> +static bool
> +adjust_mode_bad_hsync_end(data_t *data, drmModeModeInfoPtr mode)
> +{
> +	mode->hsync_end = mode->hsync_start - 1;
> +	return true;
> +}
> +
> +static bool
> +adjust_mode_bad_vsync_end(data_t *data, drmModeModeInfoPtr mode)
> +{
> +	mode->vsync_end = mode->vsync_start - 1;
> +	return true;
> +}
> +
> +static bool
> +adjust_mode_bad_htotal(data_t *data, drmModeModeInfoPtr mode)
> +{
> +	mode->htotal = mode->hsync_end - 1;
> +	return true;
> +}
> +
> +static bool
> +adjust_mode_bad_vtotal(data_t *data, drmModeModeInfoPtr mode)
> +{
> +	mode->vtotal = mode->vsync_end - 1;
> +	return true;
> +}
> +
>   static int
>   test_output(data_t *data)
>   {
> @@ -117,7 +180,8 @@ test_output(data_t *data)
>   		return 0;
>   
>   	igt_create_fb(data->drm_fd,
> -		      mode.hdisplay, mode.vdisplay,
> +		      max(mode.hdisplay, 64),
> +		      max(mode.vdisplay, 64),
>   		      DRM_FORMAT_XRGB8888,
>   		      DRM_FORMAT_MOD_NONE,
>   		      &fb);
> @@ -177,6 +241,33 @@ static const struct {
>   	{ .name = "clock-too-high",
>   	  .adjust_mode = adjust_mode_clock_too_high,
>   	},
> +	{ .name = "zero-clock",
> +	  .adjust_mode = adjust_mode_zero_clock,
> +	},
> +	{ .name = "zero-hdisplay",
> +	  .adjust_mode = adjust_mode_zero_hdisplay,
> +	},
> +	{ .name = "zero-vdisplay",
> +	  .adjust_mode = adjust_mode_zero_vdisplay,
> +	},
> +	{ .name = "bad-hsync-start",
> +	  .adjust_mode = adjust_mode_bad_hsync_start,
> +	},
> +	{ .name = "bad-vsync-start",
> +	  .adjust_mode = adjust_mode_bad_vsync_start,
> +	},
> +	{ .name = "bad-hsync-end",
> +	  .adjust_mode = adjust_mode_bad_hsync_end,
> +	},
> +	{ .name = "bad-vsync-end",
> +	  .adjust_mode = adjust_mode_bad_vsync_end,
> +	},
> +	{ .name = "bad-htotal",
> +	  .adjust_mode = adjust_mode_bad_htotal,
> +	},
> +	{ .name = "bad-vtotal",
> +	  .adjust_mode = adjust_mode_bad_vtotal,
> +	},
>   };
>   
>   static data_t data;




More information about the igt-dev mailing list