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 5 from autotest_lib.client.common_lib import utils 6 from autotest_lib.server.brillo.feedback import client_factory 7 8 AUTHOR = 'ralphnathan' 9 NAME = 'brillo_PlaybackAudioTest.opensles.should' 10 TIME = 'SHORT' 11 TEST_CATEGORY = 'Functional' 12 TEST_TYPE = 'Server' 13 ATTRIBUTES = 'suite:brillo-audio' 14 DEPENDENCIES = 'loopback-dongle' 15 16 DOC = """ 17 Tests audio playback using opensles and a file on a Brillo device and different 18 parameters. 19 20 Test 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 30 TEST_ARG_NAMES = () 31 args_dict = utils.args_to_dict(args) 32 33 34 def 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 52 parallel_simple(run, machines) 53