# Copyright 2015 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_audio"
PURPOSE = "A Chameleon audio test suite."

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

DOC = """
Audio tests which require chameleon and audio boards connected.
The Audio and Chameleon boards can emulate audio jack audio activity
in order to test the Chrome OS audio stack.

Together with DUT and external peripherals they are bundled in
audio-box environment for end-to-end testing. Details on go/audioboard
go/audiobox, go/ab-care-and-feed, and go/chameleon-audio-conf.

@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 import provision
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>Audio'],
    'owner': 'cychiang@chromium.org',
    'status': None,
    'summary': None,
    'title': None,
    'cc': ['kalin@chromium.org', 'conradlo@chromium.org',
           'chromeos-audio-bugs@google.com']
}

args_dict['name'] = NAME
args_dict['suite_dependencies'] = 'chameleon'
args_dict['job'] = job
args_dict['add_experimental'] = True
args_dict['max_runtime_mins'] = 240
args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
