# Copyright 2019 The ChromiumOS Authors
# 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

NAME = "audio_AudioTestAssumptionCheck.suspend"
METADATA = {
    "contacts": ["chromeos-audio-bugs@google.com"],
    "bug_component": "b:875558",
    "criteria": "This test will fail if functions that audio tests rely on are broken after suspend-resume.",
    "doc" : "This test audio functions work correctly after suspend.",
    'variant_category': '{"name": "Audio_SoC_Codec_Amp"}',
}
TEST_TYPE = "server"
ATTRIBUTES = "suite:audio_essential"
DEPENDENCIES = "chameleon_state:WORKING"
JOB_RETRIES = 1

DOC = """
This test remotely tests if suspend, audio tests rely on, work correctly.
"""

def run(machine):
    host = hosts.create_host(machine)
    # The suspend_only flag is for crbug:978593, which causes the check to
    # always fail. however, we still want to check the suspend operation as it
    # also potentially fails the audio tests. This should be removed once the
    # blocker is fixed
    job.run_test("audio_AudioTestAssumptionCheck", host=host, suspend_only=True)

parallel_simple(run, machines)
