# Copyright (c) 2016 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 = "audio_AudioBasicHDMI.suspend"
PURPOSE = "Remotely controlled HDMI after suspend audio test."
CRITERIA = "This test will fail if the captured audio does not match original file."
# Disable this test until it can be fixed: http://b/154646216
# ATTRIBUTES = "suite:audio_advanced"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "audio"
TEST_TYPE = "server"
DEPENDENCIES = 'chameleon:hdmi, audio_board, test_hdmiaudio'
JOB_RETRIES = 1

DOC = """
This test remotely tests HDMI audio function after suspend-resume.
"""

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("audio_AudioBasicHDMI", suspend=True, host=host)

parallel_simple(run, machines)
