• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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