[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