# 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.

from autotest_lib.server import utils

AUTHOR = "chromeos-chameleon"
NAME = "display_HotPlugNoisy.mirrored"
PURPOSE = "Remotely controlled noisy display HPD test."
CRITERIA = "This test will fail if screen pixels do not match."
ATTRIBUTES = "suite:chameleon_dp, suite:chameleon_dp_hdmi, suite:chameleon_hdmi, suite:chameleon_hdmi_nightly"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "display"
TEST_TYPE = "server"
DEPENDENCIES = 'chameleon'

DOC = """
This test remotely emulates noisy HPD line when connecting to an external
display in mirrored mode using the Chameleon board.
"""

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_HotPlugNoisy", host=host, test_mirrored=True,
                 tag="mirrored")

parallel_simple(run, machines)
