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

AUTHOR = "chromeos-chameleon"
NAME = "chameleon_dp"
PURPOSE = "A Chameleon test suite."

TIME = "LENGTHY"
TEST_CATEGORY = "General"
TEST_CLASS = "suite"
TEST_TYPE = "Server"

DOC = """
Display tests which require Chameleon board connected via DP connection.
The Chameleon board can emulate a monitor such that the test can control
its behaviors in order to test the Chrome OS graphic stack.

@param build: The name of the image to test.
              Ex: x86-mario-release/R17-1412.33.0-a1-b29
@param board: The board to test on.  Ex: x86-mario
@param pool: The pool of machines to utilize for scheduling. If pool=None
             board is used.
@param check_hosts: require appropriate live hosts to exist in the lab.
@param SKIP_IMAGE: (optional) If present and True, don't re-image devices.
"""

import common
from autotest_lib.server.cros.dynamic_suite import dynamic_suite

# Values specified in this bug template will override default values when
# filing bugs on tests that are a part of this suite. If left unspecified
# the bug filer will fallback to it's defaults.
_BUG_TEMPLATE = {
    'labels': ['OS-Chrome', 'Chameleon'],
    'components': ['OS>Kernel>Graphics'],
    'owner': 'kalin@chromium.org',
    'status': None,
    'summary': None,
    'title': None,
    'cc': ['waihong@chromium.org', 'conradlo@chromium.org']
}

args_dict['name'] = NAME
args_dict['suite_dependencies'] = 'chameleon:dp'
args_dict['max_runtime_mins'] = 240
args_dict['job'] = job
args_dict['add_experimental'] = True
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
