From 464775e777d52ac0f84a1cdb644dc331f2fff8b9 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Fri, 28 Oct 2022 21:42:25 +0000 Subject: [PATCH] AIDL effect: init effect test case with effect factory service. Bug: 255578432 Test: atest VtsHalAudioEffectTargetTest atest VtsHalAudioEffectFactoryTargetTest atest VtsHalEqualizerTargetTest Change-Id: Ib73811c602b5fd8f647ede1033ea62ee65e36a0b --- audio/aidl/vts/EffectHelper.h | 1 + audio/aidl/vts/VtsHalEqualizerTargetTest.cpp | 55 +++++++++++++------- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/audio/aidl/vts/EffectHelper.h b/audio/aidl/vts/EffectHelper.h index c58ed13bfb..e4edd10083 100644 --- a/audio/aidl/vts/EffectHelper.h +++ b/audio/aidl/vts/EffectHelper.h @@ -217,6 +217,7 @@ class EffectHelper { input.frameCount = iFrameCount; output.base.sampleRate = oSampleRate; output.base.channelMask = mOutputChannelLayout; + output.base.format = DefaultFormat; output.frameCount = oFrameCount; inputFrameSize = android::hardware::audio::common::getFrameSizeInBytes( input.base.format, input.base.channelMask); diff --git a/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp b/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp index 3b9699b5aa..1ac71f1e85 100644 --- a/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp +++ b/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp @@ -58,16 +58,26 @@ using aidl::android::hardware::audio::effect::Parameter; * Here we focus on specific parameter checking, general IEffect interfaces testing performed in * VtsAudioEfectTargetTest. */ -using EqualizerParamTestParam = std::tuple; +enum ParamName { PARAM_INSTANCE_NAME, PARAM_PRESET_INDEX, PARAM_BAND_INDEX, PARAM_BAND_LEVEL }; +using EqualizerParamTestParam = std::tuple; + +/* +Testing parameter range, assuming the parameter supported by effect is in this range. +This range is verified with IEffect.getDescriptor(), for any index supported vts expect EX_NONE +from IEffect.setParameter(), otherwise expect EX_ILLEGAL_ARGUMENT. +*/ +constexpr std::pair kPresetIndexRange = {-1, 10}; // valid range [0, 9] +constexpr std::pair kBandIndexRange = {-1, 5}; // valid range [0, 4] +constexpr std::pair kBandLevelRange = {-5, 5}; // needs update with implementation class EqualizerParamTest : public ::testing::TestWithParam, public EffectHelper { public: EqualizerParamTest() - : EffectHelper(android::getAidlHalInstanceNames(IFactory::descriptor)[0]), - mParamPresetIndex(std::get<0 /* kPresetIndexRange */>(GetParam())), - mParamBandIndex(std::get<1 /* kBandIndexRange */>(GetParam())), - mParamBandLevel(std::get<2 /* kBandLevelRange */>(GetParam())) {} + : EffectHelper(std::get(GetParam())), + mParamPresetIndex(std::get(GetParam())), + mParamBandIndex(std::get(GetParam())), + mParamBandLevel(std::get(GetParam())) {} void SetUp() override { CreateEffectsWithUUID(EqualizerTypeUUID); @@ -109,7 +119,7 @@ class EqualizerParamTest : public ::testing::TestWithParamsetParameter(expectParam)) << expectParam.toString(); - // get + // only get if parameter in range and set success if (expected == EX_NONE) { Parameter getParam; Parameter::Specific::Id id; @@ -208,22 +218,27 @@ TEST_P(EqualizerParamTest, SetAndGetSingleBand) { SetAndGetEqualizerParameters(); } -/** - Testing preset index range with [-10, 10], assuming the min/max preset index supported by -effect is in this range. - This range is verified with IEffect.getDescriptor(): for any index supported vts expect EX_NONE -from IEffect.setParameter(), otherwise expect EX_ILLEGAL_ARGUMENT. - */ -constexpr std::pair kPresetIndexRange = {-1, 10}; // valid range [0, 9] -constexpr std::pair kBandIndexRange = {-1, 5}; // valid range [0, 4] -constexpr std::pair kBandLevelRange = {-5, 5}; // needs update with implementation - INSTANTIATE_TEST_SUITE_P( EqualizerTest, EqualizerParamTest, - ::testing::Combine(testing::Range(kPresetIndexRange.first, kPresetIndexRange.second), - testing::Range(kBandIndexRange.first, kBandIndexRange.second), - testing::Range(kBandLevelRange.first, kBandLevelRange.second))); -GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(EqualizerTest); + ::testing::Combine( + testing::ValuesIn(android::getAidlHalInstanceNames(IFactory::descriptor)), + testing::Range(kPresetIndexRange.first, kPresetIndexRange.second), + testing::Range(kBandIndexRange.first, kBandIndexRange.second), + testing::Range(kBandLevelRange.first, kBandLevelRange.second)), + [](const testing::TestParamInfo& info) { + std::string instance = std::get(info.param); + std::string presetIdx = std::to_string(std::get(info.param)); + std::string bandIdx = std::to_string(std::get(info.param)); + std::string bandLevel = std::to_string(std::get(info.param)); + + std::string name = instance + "_presetIndex" + presetIdx + "_bandIndex" + bandIdx + + "_bandLevel" + bandLevel; + std::replace_if( + name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); + return name; + }); + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(EqualizerParamTest); int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv);