1# Copyright 2016 The Chromium OS Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5from autotest_lib.client.common_lib import utils 6from autotest_lib.server.brillo.feedback import client_factory 7 8AUTHOR = 'ralphnathan' 9NAME = 'brillo_PlaybackAudioTest.opensles.should' 10TIME = 'SHORT' 11TEST_CATEGORY = 'Functional' 12TEST_TYPE = 'Server' 13ATTRIBUTES = 'suite:brillo-audio' 14DEPENDENCIES = 'loopback-dongle' 15 16DOC = """ 17Tests audio playback using opensles and a file on a Brillo device and different 18parameters. 19 20Test arguments: 21 22 feedback=NAME Name of the feedback client implementation to use. See 23 server.brillo.feedback.client_factory for supported values. 24 Default: 'loop'. 25 26 feedback_args Comma-separated list of initialization arguments for the 27 feedback client. Default: no additional arguments. 28""" 29 30TEST_ARG_NAMES = () 31args_dict = utils.args_to_dict(args) 32 33 34def run(machine): 35 test_args = {name: args_dict[name] for name in TEST_ARG_NAMES 36 if name in args_dict} 37 fb_client_name = args_dict.get('feedback', 'loop') 38 fb_client = client_factory.get_audio_client(fb_client_name, NAME, machine, 39 args_dict.get('feedback_args')) 40 job.run_test('brillo_PlaybackAudioTest', 41 tag=NAME.split('.', 1)[1], 42 host=hosts.create_host(machine), 43 fb_client=fb_client, 44 playback_method='opensles', 45 use_file='true', 46 sample_widths_arr=[2], 47 sample_rates_arr=[16000, 22000, 44100], 48 num_channels_arr=[1, 2], 49 **test_args) 50 51 52parallel_simple(run, machines) 53