vts: getParameters only if parameters are supported

1) Validate specific parameters before open call,
   send only if parameters are supported.
2) GetParameters only if parameters are in range.

Bug: 288510312
Test: run vts VtsHalNSTargetTest, VtsHalAECTargetTest
(cherry picked from https://android-review.googlesource.com/q/commit:b985903e16929a7378c6c8ff6281e6748164ce51)
Merged-In: Idb20d819b3eb8a4ba56b4d50311c1aa7659f3616
Change-Id: Idb20d819b3eb8a4ba56b4d50311c1aa7659f3616
This commit is contained in:
Jaideep Sharma
2023-07-07 14:35:48 +05:30
committed by Cherrypicker Worker
parent 750c778f60
commit dfd1d0632e
2 changed files with 17 additions and 6 deletions

View File

@@ -51,7 +51,7 @@ class AECParamTest : public ::testing::TestWithParam<AECParamTestParam>, public
ASSERT_NE(nullptr, mFactory);
ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor));
Parameter::Specific specific = getDefaultParamSpecific();
auto specific = getDefaultParamSpecific();
Parameter::Common common = EffectHelper::createParamCommon(
0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */,
kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */);
@@ -65,8 +65,13 @@ class AECParamTest : public ::testing::TestWithParam<AECParamTestParam>, public
ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect));
}
Parameter::Specific getDefaultParamSpecific() {
AcousticEchoCanceler aec = AcousticEchoCanceler::make<AcousticEchoCanceler::echoDelayUs>(0);
std::optional<Parameter::Specific> getDefaultParamSpecific() {
auto aec = AcousticEchoCanceler::make<AcousticEchoCanceler::echoDelayUs>(0);
if (!isParameterValid<AcousticEchoCanceler, Range::acousticEchoCanceler>(aec,
mDescriptor)) {
return std::nullopt;
}
Parameter::Specific specific =
Parameter::Specific::make<Parameter::Specific::acousticEchoCanceler>(aec);
return specific;

View File

@@ -48,7 +48,7 @@ class NSParamTest : public ::testing::TestWithParam<NSParamTestParam>, public Ef
ASSERT_NE(nullptr, mFactory);
ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor));
Parameter::Specific specific = getDefaultParamSpecific();
std::optional<Parameter::Specific> specific = getDefaultParamSpecific();
Parameter::Common common = EffectHelper::createParamCommon(
0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */,
kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */);
@@ -62,9 +62,13 @@ class NSParamTest : public ::testing::TestWithParam<NSParamTestParam>, public Ef
ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect));
}
Parameter::Specific getDefaultParamSpecific() {
std::optional<Parameter::Specific> getDefaultParamSpecific() {
NoiseSuppression ns =
NoiseSuppression::make<NoiseSuppression::level>(NoiseSuppression::Level::MEDIUM);
if (!isParameterValid<NoiseSuppression, Range::noiseSuppression>(ns, mDescriptor)) {
return std::nullopt;
}
Parameter::Specific specific =
Parameter::Specific::make<Parameter::Specific::noiseSuppression>(ns);
return specific;
@@ -85,7 +89,9 @@ class NSParamTest : public ::testing::TestWithParam<NSParamTestParam>, public Ef
// validate parameter
Descriptor desc;
ASSERT_STATUS(EX_NONE, mEffect->getDescriptor(&desc));
const binder_exception_t expected = EX_NONE;
const bool valid =
isParameterValid<NoiseSuppression, Range::noiseSuppression>(ns, desc);
const binder_exception_t expected = valid ? EX_NONE : EX_ILLEGAL_ARGUMENT;
// set parameter
Parameter expectParam;