blob: c175c63d06d3353f3b0f1c58388260297083cc69 [file] [log] [blame]
# Copyright 2019 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.
"""
This is a server side audio sanity test testing assumptions other audio tests
rely on.
"""
from autotest_lib.client.common_lib import error
from autotest_lib.client.cros.chameleon import audio_test_utils
from autotest_lib.server.cros.audio import audio_test
class audio_AudioSanityCheck(audio_test.AudioTest):
"""
This test talks to a Cros device to verify if some basic functions that
other audio tests rely on still work after a suspension.
"""
version = 1
def verify_chrome_audio(self):
""""Verify if chrome.audio API is available"""
if not self.facade.get_chrome_audio_availablity():
raise error.TestFail("chrome.audio API is not available")
def verify_suspend(self):
""""Verify and trigger a suspension"""
audio_test_utils.suspend_resume_and_verify(self.host, self.factory)
def run_once(self, suspend_only=False):
"""Runs Audio sanity test to make sure chrome api works. """
# The suspend_only flag is for crbug:978593, which causes sanity 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
if suspend_only:
self.verify_suspend()
return
# Check if the chrome.audio API is available
self.verify_chrome_audio()
# chrome.audio API should remain available after a suspension
self.verify_suspend()
self.verify_chrome_audio()