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

Ville Syrjala ville.syrjala at linux.intel.com
Fri Nov 15 13:15:19 UTC 2019


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

Make sure the mode gets rejected when some part of the timings
is bogus.

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 tests/kms_invalid_mode.c | 73 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 72 insertions(+), 1 deletion(-)

diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c
index 323f965dde77..9b94b9face4a 100644
--- a/tests/kms_invalid_mode.c
+++ b/tests/kms_invalid_mode.c
@@ -68,6 +68,55 @@ adjust_mode_clock_too_high(data_t *data, drmModeModeInfoPtr mode)
 	return true;
 }
 
+static bool
+adjust_mode_bad_clock(data_t *data, drmModeModeInfoPtr mode)
+{
+	mode->clock = 0;
+	return true;
+}
+
+static bool
+adjust_mode_bad_hdisplay(data_t *data, drmModeModeInfoPtr mode)
+{
+	mode->hdisplay = 0;
+	return true;
+}
+
+static bool
+adjust_mode_bad_vdisplay(data_t *data, drmModeModeInfoPtr mode)
+{
+	mode->hdisplay = 0;
+	return true;
+}
+
+static bool
+adjust_mode_bad_hsync(data_t *data, drmModeModeInfoPtr mode)
+{
+	mode->hsync_start = mode->hsync_end + 1;
+	return true;
+}
+
+static bool
+adjust_mode_bad_vsync(data_t *data, drmModeModeInfoPtr mode)
+{
+	mode->vsync_start = mode->vsync_end + 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)
 {
@@ -85,7 +134,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,
 		      LOCAL_DRM_FORMAT_MOD_NONE,
 		      &fb);
@@ -143,6 +193,27 @@ static const struct {
 	{ .name = "clock-too-high",
 	  .adjust_mode = adjust_mode_clock_too_high,
 	},
+	{ .name = "bad-clock",
+	  .adjust_mode = adjust_mode_bad_clock,
+	},
+	{ .name = "bad-hdisplay",
+	  .adjust_mode = adjust_mode_bad_hdisplay,
+	},
+	{ .name = "bad-vdisplay",
+	  .adjust_mode = adjust_mode_bad_vdisplay,
+	},
+	{ .name = "bad-hsync",
+	  .adjust_mode = adjust_mode_bad_hsync,
+	},
+	{ .name = "bad-vsync",
+	  .adjust_mode = adjust_mode_bad_vsync,
+	},
+	{ .name = "bad-htotal",
+	  .adjust_mode = adjust_mode_bad_htotal,
+	},
+	{ .name = "bad-vtotal",
+	  .adjust_mode = adjust_mode_bad_vtotal,
+	},
 };
 
 static data_t data;
-- 
2.23.0



More information about the igt-dev mailing list