Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 723ed138 authored by jiabin's avatar jiabin
Browse files

Add unit test for dynamic policy.

Add unit test for dyanmic policy. Including:
    1. Use bp file instead of mk file
    2. Test (un)registering policy mixes
    3. Test dynamic policy playback rerouting
    4. Test dynamic policy mix record injection
The idea of 3. and 4. is from pa/1201282.

Test: atest audiopolicy_tests
Bug: 135621476
Change-Id: Ic95c6f9193c2448168897c5441554cff735f401d
Merged-In: Ic95c6f9193c2448168897c5441554cff735f401d
parent 16bcc29e
Loading
Loading
Loading
Loading
+66 −0
Original line number Diff line number Diff line
cc_test {
    name: "audiopolicy_tests",

    include_dirs: [
        "frameworks/av/services/audiopolicy",
    ],

    shared_libs: [
        "libaudioclient",
        "libaudiofoundation",
        "libaudiopolicy",
        "libaudiopolicymanagerdefault",
        "libbase",
        "libhidlbase",
        "liblog",
        "libmedia_helper",
        "libutils",
        "libxml2",
    ],

    static_libs: ["libaudiopolicycomponents"],

    header_libs: [
        "libaudiopolicycommon",
        "libaudiopolicyengine_interface_headers",
        "libaudiopolicymanager_interface_headers",
    ],

    srcs: ["audiopolicymanager_tests.cpp"],

    data: [":audiopolicytest_configuration_files",],

    cflags: [
        "-Werror",
        "-Wall",
    ],

    test_suites: ["device-tests"],

}

// system/audio.h utilities test

cc_test {
    name: "systemaudio_tests",

    shared_libs: [
        "libaudiofoundation",
        "libbase",
        "liblog",
        "libmedia_helper",
        "libutils",
    ],

    header_libs: ["libmedia_headers"],

    srcs: ["systemaudio_tests.cpp"],

    cflags: [
        "-Werror",
        "-Wall",
    ],

    test_suites: ["device-tests"],

}
+0 −67
Original line number Diff line number Diff line
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_C_INCLUDES := \
  frameworks/av/services/audiopolicy \
  $(call include-path-for, audio-utils) \

LOCAL_SHARED_LIBRARIES := \
  libaudiofoundation \
  libaudiopolicymanagerdefault \
  libbase \
  liblog \
  libmedia_helper \
  libutils \

LOCAL_STATIC_LIBRARIES := \
  libaudiopolicycomponents \

LOCAL_HEADER_LIBRARIES := \
    libaudiopolicycommon \
    libaudiopolicyengine_interface_headers \
    libaudiopolicymanager_interface_headers

LOCAL_SRC_FILES := \
  audiopolicymanager_tests.cpp \

LOCAL_MODULE := audiopolicy_tests

LOCAL_MODULE_TAGS := tests

LOCAL_CFLAGS := -Werror -Wall

LOCAL_MULTILIB := $(AUDIOSERVER_MULTILIB)

LOCAL_COMPATIBILITY_SUITE := device-tests

include $(BUILD_NATIVE_TEST)

# system/audio.h utilities test

include $(CLEAR_VARS)

LOCAL_SHARED_LIBRARIES := \
  libaudiofoundation \
  libbase \
  liblog \
  libmedia_helper \
  libutils

LOCAL_HEADER_LIBRARIES := \
  libmedia_headers

LOCAL_SRC_FILES := \
  systemaudio_tests.cpp \

LOCAL_MODULE := systemaudio_tests

LOCAL_MODULE_TAGS := tests

LOCAL_CFLAGS := -Werror -Wall

LOCAL_MULTILIB := $(AUDIOSERVER_MULTILIB)

LOCAL_COMPATIBILITY_SUITE := device-tests

include $(BUILD_NATIVE_TEST)
+567 −7

File changed.

Preview size limit exceeded, changes collapsed.

+7 −0
Original line number Diff line number Diff line
filegroup {
    name: "audiopolicytest_configuration_files",
    srcs: [
        "test_audio_policy_configuration.xml",
        "test_audio_policy_primary_only_configuration.xml",
    ],
}
+86 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (C) 2019 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
    <globalConfiguration speaker_drc_enabled="true"/>

    <modules>
        <!-- Primary module -->
        <module name="primary" halVersion="2.0">
            <attachedDevices>
                <item>Speaker</item>
                <item>Built-In Mic</item>
            </attachedDevices>
            <defaultOutputDevice>Speaker</defaultOutputDevice>
            <mixPorts>
                <mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY">
                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                </mixPort>
                <mixPort name="primary input" role="sink">
                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                             samplingRates="48000"
                             channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
                </mixPort>
            </mixPorts>
            <devicePorts>
                <devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
                </devicePort>
                <devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
                </devicePort>
            </devicePorts>
            <routes>
                <route type="mix" sink="Speaker"
                       sources="primary output"/>
                <route type="mix" sink="primary input"
                       sources="Built-In Mic"/>
            </routes>
        </module>

        <!-- Remote Submix module -->
        <module name="r_submix" halVersion="2.0">
            <attachedDevices>
                <item>Remote Submix In</item>
            </attachedDevices>
            <mixPorts>
                <mixPort name="r_submix output" role="source">
                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                </mixPort>
                <mixPort name="r_submix input" role="sink">
                   <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                            samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
                </mixPort>
           </mixPorts>
           <devicePorts>
               <devicePort tagName="Remote Submix Out" type="AUDIO_DEVICE_OUT_REMOTE_SUBMIX"  role="sink">
                   <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                            samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
               </devicePort>
               <devicePort tagName="Remote Submix In" type="AUDIO_DEVICE_IN_REMOTE_SUBMIX"  role="source">
                   <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                            samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
                </devicePort>
            </devicePorts>
            <routes>
                <route type="mix" sink="Remote Submix Out"
                       sources="r_submix output"/>
                <route type="mix" sink="r_submix input"
                       sources="Remote Submix In"/>
            </routes>
        </module>
    </modules>
</audioPolicyConfiguration>
Loading