# Copyright (c) 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.

from autotest_lib.server import utils

AUTHOR = "chromeos-chameleon"
NAME = "display_ServerChameleonConnection"
PURPOSE = "Chameleon connection test from server-side."
CRITERIA = 'This test fails if DUT and Chameleon are not connected properly.'
ATTRIBUTES = "suite:chameleon_hdmi_unstable"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "display"
TEST_TYPE = "server"
DEPENDENCIES = 'chameleon'

DOC = """
This test checks the connection between DUT and Chameleon.
"""

args_dict = utils.args_to_dict(args)
chameleon_args = hosts.CrosHost.get_chameleon_arguments(args_dict)

def run(machine):
    host = hosts.create_host(machine, chameleon_args=chameleon_args)
    job.run_test("display_ServerChameleonConnection", host=host)

parallel_simple(run, machines)
