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

Commit dfd1d063 authored by Jaideep Sharma's avatar Jaideep Sharma Committed by Cherrypicker Worker
Browse files

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
parent 750c778f
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -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;
+9 −3
Original line number Diff line number Diff line
@@ -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;