summaryrefslogtreecommitdiff
path: root/audio/effect/all-versions/vts/functional/ValidateAudioEffectsConfiguration.cpp
AgeCommit message (Collapse)Author
2020-04-17audio: Centralize audio configuration paths specificationMikhail Naganov
The list of possible paths for the audio configuration files is now retrieved using audio_get_configuration_paths() function. All duplicated lists of known configuration directories have been removed. Bug: 153680356 Test: atest VtsHalAudioV6_0TargetTest \ VtsHalAudioPolicyV1_0TargetTest \ VtsHalAudioEffectV6_0TargetTest Change-Id: I1e40fdf8d6e3a5ac339f7f138f62063bb87bd3da Merged-In: I1e40fdf8d6e3a5ac339f7f138f62063bb87bd3da
2020-03-23Audio Effects: Skip CheckConfig test for non-matching HAL versionsMikhail Naganov
In vts-core a test suite for version N can be called for HAL of version M. Since in the case of the Effects HAL the XSD configuration for the effects is version-dependent, the test must not validate the effects config using XSD file for other version. Thus, the configuration validity check must be skipped if no corresponding version of IEffectsFactory is found on the device. Bug: 142397658 Bug: 146015418 Test: atest VtsHalAudioEffectV6_0TargetTest on a device that uses earlier version of Audio HAL; CheckConfig#audioEffectsConfigurationValidation must be IGNORED Change-Id: I4b34cc34091447c04bf8d3e988c9bd4048dc8ef9 Merged-In: I4b34cc34091447c04bf8d3e988c9bd4048dc8ef9
2018-12-02Audio HAL V5: Introduce HAL V5, equal to V4 for nowKevin Rocard
find -name 4.0 | xargs -I@ cp -r @ @/../5.0 find 5.0 */5.0 -type f | xargs sed -Ei 's/V4/V5/;s#(@|/)4.0#\15.0#' find -name *cpp -o -name *.h | xargs sed -i 's/VERSION == 4/VERSION >= 4/g' mv {4.1,5.0}/config/audio_policy_configuration.xsd Then a manual update to Android.bp to add V5 support. Then a manual update to service.cpp to add support for loading 5.0. If someone knows a way to avoid copying the .hal, it would be great. They will be 99% identical between V4 and V5. Bug: 118203066 Test: vts-tradefed run commandAndExit vts --module VtsHalAudioEffectV2_0Target vts-tradefed run commandAndExit vts --module VtsHalAudioV2_0Target vts-tradefed run commandAndExit vts --module VtsHalAudioEffectV4_0Target vts-tradefed run commandAndExit vts --module VtsHalAudioV4_0Target Change-Id: If99a5645d19c9780019704ea4f51f8114d83ee8f Signed-off-by: Kevin Rocard <krocard@google.com>
2018-11-28Audio HAL: Factorize V2 and V4 like libaudiohalKevin Rocard
Use the same technique developed for the simpler libaudiohal to factorize the audio HAL impl. Generated with script: set -euo pipefail cd hardware/interfaces/audio # Make 2.0 and 4.0 files mostly identical by removing all 2.0, V4.0... # and replacing it by CPP_VERSION and FILE_VERSION # This allow both implementation to be mostly identical, except for code difference # Also remove IncludeGuard.h as it will be included from compiler flag # Also update license to 2018 find -name *.cpp -o -name *h | grep -v -e service.cpp | xargs sed -Ei \ -e 's/(#.*)V[42]_0_(.*_H_?)$/\1\2/' \ -e 's/(LOG_TAG.*)[24]_0/\1/' \ -e '/#ifndef AUDIO_HAL_VERSION/,/#endif/d' \ -e '/^#.*def.*AUDIO_HAL_VERSION\b/d' \ -e's/V[42]_0/CPP_VERSION/' \ -e 's/(#include ).(android.*)[24].0(.*).$/\1PATH(\2FILE_VERSION\3)/' \ -e 's|(#include) .(.*)[24].0/(default/.*).$|\1 "\2\3"|' \ -e 's/\bAUDIO_HAL_VERSION\b/CPP_VERSION/' \ -e '/IncludeGuard.h/d' \ -e 's/(Copyright .C. 201)./\18/' # set MAJOR_VERSION instead of having a different macro for each version # this allow to do preprocessor arithmetic (eg: MAJOR_VERSION >= 4) for v in 2 4; do find -ipath '*/'$v'.0/*/Android.bp' | xargs sed -i -e '/cflags:/,/^$/d' -e '/vndk/{:a;/}/!{N;ba};d}' -e '$i\ cflags: [\ "-DMAJOR_VERSION='$v'",\ "-DMINOR_VERSION=0",\ "-include common/all-versions/VersionMacro.h",\ ]'; done # replace# ifdef VERSION_X by #if MAJOR_VERSION == X find -path *all-versions/*.h | xargs sed -Ei -e 's/def.*AUDIO_HAL_VERSION_([24])_0.*/ MAJOR_VERSION == \1/' \ -e 'T;s/ +/ /' # copy all-versions impl in each version impl find -path '*/[24].0/*.[hc]*' | grep -ve all-versions -e test | xargs -P99 -n4 sed -i -Ee '/include <.*all-versions.default/!b' \ -e 's#.*<#find -path */#' -e 's/>$/|xargs tail -n +16/' -e e # remove all-versions impl rm -r {core,effect}/all-versions/ # merge version impl into a single all-version for dir in core/*.0/vts/functional/*.0/ ;do dest=$(echo $dir | sed 's#/..0/#/all-versions/#') mkdir -p $dest mv -T $dir $dest done find -mindepth 3 -path '*/2.0/*' -a \( -name '*cpp' -o -name '*h' \) | grep -v 'all-versions' | sed -E 'h;s/2/4/g;H;s/4.0/all-versions/;s/4.0//;H;g;s/\n/ /g;'| xargs -P99 -L1 sh -c ' set -euo pipefail mkdir -p $(dirname $2); diff --old-group-format="#if MAJOR_VERSION == 2 %<#endif " \ --new-group-format="#if MAJOR_VERSION == 4 %>#endif " $0 $1 > $2 || true; rm $0 $1' # merge the X.0 Android.bp & OWNERS in the all-versions for dir in common effect core; do for sub in default vts/functional; do test -f $dir/2.0/$sub/Android.bp || continue awk 1 $dir/*.0/$sub/Android.bp >> $dir/all-versions/$sub/Android.bp # delete licenses except for the first one and add whitelines sed -i -e '/^}$/{N;/^}\n$/!s/\n/&\n/}' $dir/all-versions/$sub/Android.bp sed -i -e '1,17b;/^\/\//,/^$/{d}' $dir/all-versions/$sub/Android.bp done for sub in default vts; do test -d $dir/2.0/$sub || continue test -f $dir/2.0/$sub/OWNERS && awk 1 $dir/*.0/$sub/OWNERS | sort -u > $dir/all-versions/$sub/OWNERS || true rm -r $dir/*.0/$sub done done # delete all-versions-impl dependencies find -name 'Android.bp' | xargs sed -i -e '/all-versions-impl/d' # cleanup unused files rm common/all-versions/default/include/common/all-versions/default/HidlUtils* rm common/all-versions/util/include/common/all-versions/IncludeGuard.h find -depth -type d -empty -delete # Clamp consecutive number of empty lines to 2 find -name *.cpp -o -name *h | xargs sed -Ei ':a;/^\n*$/{N;ba};s/\n\n+/\n\n/' # transform #endif\n#if to #elif find -name *.cpp -o -name *h | xargs sed -i '/^#endif/{N;s/.*\n#if/#elif/}' # remove leftover include guard in cpp find -name *.cpp |xargs sed -Ei '/^#.*_H_?$/d' # apply clang-format find -name *cpp -o -name *h | xargs ../../../prebuilts/clang/host/linux-x86/clang-stable/bin/clang-format --style file -i # clang format breaks PATH(a/b) to PATH(a / b), remove the space surrounding / find -name *cpp -o -name *h | xargs sed -i "/#include PATH/s# / #/#g" Test: compile Bug: 118203066 Change-Id: I3692a444307afc5f71064fe0b9e6b8af3c9ff1dd Signed-off-by: Kevin Rocard <krocard@google.com>