blob: 90fb496f2ff1c0e02115983c62f7188f1660ca45 [file] [log] [blame]
# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""This is a server side resolution display test using the Chameleon board."""
import logging
import os
from autotest_lib.server.cros.chameleon import chameleon_test
class display_Resolution(chameleon_test.ChameleonTest):
"""Server side external display test.
This test talks to a Chameleon board and a DUT to set up, run, and verify
external display function of the DUT.
"""
version = 1
RESOLUTION_TEST_LIST = [
# Mix DP and HDMI together to test the converter cases.
('DP', 1280, 800),
('DP', 1440, 900),
('DP', 1600, 900),
('DP', 1680, 1050),
('DP', 1920, 1080),
('HDMI', 1280, 720),
('HDMI', 1920, 1080),
]
def run_once(self, host, test_mirrored=False, test_suspend_resume=False,
test_reboot=False):
errors = []
for tag, width, height in self.RESOLUTION_TEST_LIST:
test_resolution = (width, height)
test_name = "%s_%dx%d" % ((tag,) + test_resolution)
if not self.is_edid_supported(tag, width, height):
logging.info('skip unsupported EDID: %s', test_name)
continue
self.apply_edid_file(os.path.join(
self.bindir, 'test_data', 'edids', test_name))
if test_reboot:
self.reboot()
else:
self.reconnect_output()
self.set_mirrored(test_mirrored)
if test_suspend_resume:
self.suspend_resume()
self.load_test_image_and_check(
test_name, test_resolution,
under_mirrored_mode = test_mirrored, error_list = errors)
self.raise_on_errors(errors)