1# Lint as: python2, python3
2# Copyright 2014 The Chromium OS Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6"""This is a server-side test to check the Chameleon connection."""
7
8import logging
9
10from autotest_lib.client.common_lib import error
11from autotest_lib.client.cros.chameleon import chameleon_port_finder
12from autotest_lib.server import test
13from autotest_lib.server.cros.multimedia import remote_facade_factory
14
15
16class display_ServerChameleonConnection(test.test):
17    """Chameleon connection server test.
18
19    This test talks to a Chameleon board from DUT. Try to plug the Chameleon
20    ports and see if DUT detects them.
21    """
22    version = 1
23
24    def run_once(self, host):
25        factory = remote_facade_factory.RemoteFacadeFactory(host)
26        display_facade = factory.create_display_facade()
27        chameleon_board = host.chameleon
28
29        chameleon_board.setup_and_reset(self.outputdir)
30
31        finder = chameleon_port_finder.ChameleonVideoInputFinder(
32                chameleon_board, display_facade)
33        ports = finder.find_all_ports()
34
35        connected_ports = ports.connected
36        dut_failed_ports = ports.failed
37
38        msg = str(finder)
39        logging.debug(msg)
40
41        if dut_failed_ports or not connected_ports:
42            raise error.TestFail(msg)
43