diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2015-12-04 15:49:30 +0200 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2015-12-08 15:23:10 +0200 |
commit | 870548b6533318b10c414663ea4ad2af01bab8b9 (patch) | |
tree | be121b4384bca098bee9e7b06a01b9d03c315d81 /tests | |
parent | b0f4df31baf3ddda72a276f3b2b03ae8363d0843 (diff) |
tests/kms_force_connector_basic: Add prune-stale-modes subtest
Add a new subtest that makes sure old stale modes get pruned from the
connector's mode list when the EDID changes.
v2: s/drmModeGetConnector/drmModeGetConnectorCurrent/ since
kmstest_force_edid() already takes care of doing the heavier
call for us (Daniel)
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/kms_force_connector_basic.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/kms_force_connector_basic.c b/tests/kms_force_connector_basic.c index 637f625a..bd80caef 100644 --- a/tests/kms_force_connector_basic.c +++ b/tests/kms_force_connector_basic.c @@ -178,6 +178,46 @@ int main(int argc, char **argv) } + igt_subtest("prune-stale-modes") { + int i; + + kmstest_force_connector(drm_fd, vga_connector, + FORCE_CONNECTOR_ON); + + /* test pruning of stale modes */ + kmstest_force_edid(drm_fd, vga_connector, + igt_kms_get_alt_edid(), EDID_LENGTH); + temp = drmModeGetConnectorCurrent(drm_fd, + vga_connector->connector_id); + + for (i = 0; i < temp->count_modes; i++) { + if (temp->modes[i].hdisplay == 1400 && + temp->modes[i].vdisplay == 1050) + break; + } + igt_assert_f(i != temp->count_modes, "1400x1050 not on mode list\n"); + + drmModeFreeConnector(temp); + + kmstest_force_edid(drm_fd, vga_connector, + igt_kms_get_base_edid(), EDID_LENGTH); + temp = drmModeGetConnectorCurrent(drm_fd, + vga_connector->connector_id); + + for (i = 0; i < temp->count_modes; i++) { + if (temp->modes[i].hdisplay == 1400 && + temp->modes[i].vdisplay == 1050) + break; + } + igt_assert_f(i == temp->count_modes, "1400x1050 not pruned from mode list\n"); + + drmModeFreeConnector(temp); + + kmstest_force_edid(drm_fd, vga_connector, NULL, 0); + kmstest_force_connector(drm_fd, vga_connector, + FORCE_CONNECTOR_UNSPECIFIED); + } + igt_fixture { drmModeFreeConnector(vga_connector); close(drm_fd); |