summaryrefslogtreecommitdiff
path: root/audio/effect/all-versions/vts/functional/VtsHalAudioEffectTargetTest.cpp
AgeCommit message (Collapse)Author
2022-09-01audio: Add checks to effects feature configs retrievalMikhail Naganov
The size of the feature config needs to be limited by the Binder transaction size. This check is enforced before calling into legacy C API. Also, fixed invalid calculation of buffer size in Effect::getSupportedConfigsImpl. Bug: 240266798 Test: atest VtsHalAudioEffectV7_0TargetTest Change-Id: I1a1f7931a07e28642967fa68d9a358429138db29
2022-08-05audio: Restrict the new VTS test for effects to T+Mikhail Naganov
The VTS test AudioEffectHidlTest#GetParameterInvalidMaxReplySize should only run for new devices launching on T+ because older vendor images do not have updated HAL default wrapper code and thus will fail. Bug: 237291425 Bug: 240932876 Test: atest VtsHalAudioEffectV7_0TargetTest:Equalizer_IEffect/AudioEffectHidlTest#GetParameterInvalidMaxReplySize/0_default Change-Id: I1697155fe7781cbc96c1913e674699e299aa26b3
2022-07-08audio: Add checks to HIDL -> effect_param_t conversionMikhail Naganov
By convention, the size of the resulting effect_param_t can not exceed EFFECT_PARAM_SIZE_MAX. This checks needs to be enforced when converting from HIDL arguments into legacy C API structures. Bug: 237291425 Test: atest VtsHalAudioEffectV7_0TargetTest Change-Id: Ie92f62b002dc622fa8246139c3d956909670fdb6
2022-01-25Audio HAL V7.1: Update VTSMikhail Naganov
Mechanical updates from global greps. Updated test code to use new methods from V7.1. Added missing checks for null pointers in PcmOnlyConfig...StreamTest::releasePatchIfNeeded for V7. Bug: 214426419 Test: atest VtsHalAudioV7_1TargetTest Change-Id: Id3a99993bf2ee0c87d44f668d759f7c10db9a435
2021-02-19audio: Remove dependency on libxml2 from the default implementationMikhail Naganov
The default implementation switched to use the "enums" module generated from the audio_policy_configuration.xsd schema. This drops the dependency on libxml2 library and reduces PSS and private dirty memory usage. Bug: 180413957 Test: atest VtsHalAudioV7_0TargetTest Change-Id: If7c110cd2bd2698923957b39906a0896d18065dd
2021-01-28audio: Update common types to better match legacy structsMikhail Naganov
HAL V7 types were updated to better match data structure definitions from the legacy HAL: - Added 'AudioConfigBaseOptional' struct to match legacy structs that have 'mask' field to specify initialized fields. - All fields in 'AudioConfigBase' made mandatory. - Removed 'EffectConfigParameters' in favor of 'AudioConfigBaseOptional' and safe_unions. - Added missing enum string values to ensure that round-trip conversions from the legacy HAL to HIDL and back to legacy preserve enum values. Bug: 142480271 Test: atest android.hardware.audio.common@7.0-util_tests Test: atest VtsHalAudioV6_0TargetTest Test: atest VtsHalAudioV7_0TargetTest Test: atest VtsHalAudioEffectV7_0TargetTest Change-Id: If02a81b3f6790a8eb315fa57123141aad2419132
2021-01-08Audio: Add VTS tests for invalid enum-strings, Part 2Mikhail Naganov
Add checks for rejection of invalid device addresses and base configs. Bug: 142480271 Test: atest VtsHalAudioV6_0TargetTest Test: atest VtsHalAudioV7_0TargetTest with side-loaded V7 default wrapper Change-Id: I39690f2a171c1be6246ab155dec8e2b1a405a2a8
2020-12-16audio: Update default effect HAL wrapper to support V7Mikhail Naganov
During this conversion, the functionality of the V7 wrapper hasn't been tested yet. This will be done in a separate CL that will also include required updates to the VTS tests. Since the changes were made to the code shared with pre-V7 versions, verified that V6 HAL didn't regress. Bug: 142480271 Test: atest VtsHalAudioEffectV6_0TargetTest Test: m VtsHalAudioEffectV7_0TargetTest Test: m android.hardware.audio@7.0-service.example Change-Id: I72389c8d564596bef22b47dfdcb2e77d636ef0a3 Merged-In: I72389c8d564596bef22b47dfdcb2e77d636ef0a3
2020-12-04Changing package for audio_policy_configuration_V7_0Hayden Gomes
- Changed package to use android. prefix - Added nullability flag to xsd_config Bug: 171572311 Test: built and atest VtsHalAudioEffectV7_0TargetTest VtsHalAudioEffectV7_0TargetTest VtsHalAudioEffectV4_0TargetTest VtsAidlHalAudioControlTest Change-Id: I9ac83a98256404313b5efef17c0a164d2ee72136 Merged-In: I9ac83a98256404313b5efef17c0a164d2ee72136
2020-11-21audio: Implement VTS tests for V7.0Mikhail Naganov
The major change in V7.0 is use of enum values defined in the Audio Policy Configuration XSD schema. This allows decoupling types used at the HIDL layer from system/audio.h. Added a header audio_policy_configuration_V7_0-enums.h with utility functions analogous to ones from system/audio.h but defined for the types generated from XSD schema. Since the code of VTS tests is shared between versions, ensured that the VTS tests for the previous HAL versions didn't regress. Bug: 142480271 Test: atest VtsHalAudioV6_0TargetTest atest VtsHalAudioEffectV6_0TargetTest atest VtsHalAudioV7_0TargetTest atest VtsHalAudioEffectV7_0TargetTest Change-Id: Ia7c2d49a02783725080c8fed6a25853e91bba487 Merged-In: Ia7c2d49a02783725080c8fed6a25853e91bba487
2020-07-21Audio VTS: Suppress empty parameter list failuresMikhail Naganov
GTest has introduced a check verifying that the parameter list for TEST_P tests isn't empty. Having an empty parameter list isn't actually a problem when the VTS test runs on a device that lacks the corresponding HAL version. Bug: 161758075 Test: atest VtsHalAudioV4_0TargetTest Test: atest VtsHalAudioV5_0TargetTest Test: atest VtsHalAudioV6_0TargetTest Test: atest VtsHalAudioEffectV4_0TargetTest Test: atest VtsHalAudioEffectV5_0TargetTest Test: atest VtsHalAudioEffectV6_0TargetTest Change-Id: Ib2a017b74f69b1608d8985f403e9b2a8e54b8311
2020-03-23Audio Effects: Run more tests for LoudnessEnhancerEffectMikhail Naganov
Due to incorrect assumptions about test case inheritance in GTests, LoudnessEnhancerEffect wasn't running tests for methods of IEffect interface. The test code has been restructured to fix that via proper parametrization. Bug: 146149801 Test: atest VtsHalAudioEffectV5_0TargetTest Test: atest VtsHalAudioEffectV6_0TargetTest Change-Id: Ie366979880bfc3b7e95a02957451736d724f838f
2020-01-10Audio effect HAL: Add device ID to createEffect APIEric Laurent
Add the possibility to specify a target audio device when creating an audio effect by passing its audio port handle to createEffect API. To attach an effect to a device, the framework will use session ID AudioSessionConsts.DEVICE and provide a valid AudioPortHandle as device ID. Bug: 136294538 Test: make Change-Id: Ic697eeafbd5df6800ad4c7fd9e0698e3d8e3beae Merged-In: Ic697eeafbd5df6800ad4c7fd9e0698e3d8e3beae
2020-01-06[vts-core] add VtsHalAudioEffectV*_0TargetTest to vts-corenelsonli
Convert VtsHalAudioEffectV*_0TargetTest to be parameterized test and add it to vts-core Bug: 142397658 Bug: 146104851 Bug: 146015418 Test: $atest VtsHalAudioEffectV2_0TargetTest $atest VtsHalAudioEffectV4_0TargetTest $atest VtsHalAudioEffectV5_0TargetTest $atest VtsHalAudioEffectV6_0TargetTest Change-Id: I3e9297f7c0a0453b04721f6af8998a18043f5815
2019-11-08audio: Parametrize effect VTS tests for V6.0Mikhail Naganov
Parametrize tests to accept IEffectsFactory instance name. Discover the instances in the test. Bug: 141847510 Bug: 141989952 Test: atest VtsHalAudioEffectV5_0TargetTest atest VtsHalAudioEffectV6_0TargetTest Change-Id: Iaf19109fc77a93b211cc3da85c21c0584d4f2b88 Merged-In: Iaf19109fc77a93b211cc3da85c21c0584d4f2b88
2018-12-14Audio HAL: More generalization for types importsMikhail Naganov
Complement imports of audio::CPP_VERSION with audio::common::CPP_VERSION for core. Import namespaces in VTS tests. Remove "using namespace" from .cpp files where there are already imports in the .h file. Test: try moving types between audio/types.hal and common/types.hal. Change-Id: I49c2e2466c8175f2516c2273f5c26d125afd4801
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>