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

Commit 6a717477 authored by Sneha Patil's avatar Sneha Patil Committed by Sneha Patil (xWF)
Browse files

Volume Control: Separate the Volume Level and Mute param test

Bug: 305866207
Test: atest VtsHalVolumeTargetTest
Change-Id: Ic887defcbb29a4abbba142ce855cc0ed9ce64741
parent 78b668e4
Loading
Loading
Loading
Loading
+46 −16
Original line number Diff line number Diff line
@@ -108,16 +108,13 @@ class VolumeControlHelper : public EffectHelper {
 * Here we focus on specific parameter checking, general IEffect interfaces testing performed in
 * VtsAudioEffectTargetTest.
 */
enum ParamName { PARAM_INSTANCE_NAME, PARAM_LEVEL, PARAM_MUTE };
using VolumeParamTestParam =
        std::tuple<std::pair<std::shared_ptr<IFactory>, Descriptor>, int, bool>;
enum VolumeLevelParamName { PARAM_INSTANCE_NAME, PARAM_LEVEL };
using VolumeLevelTestParam = std::tuple<std::pair<std::shared_ptr<IFactory>, Descriptor>, int>;

class VolumeParamTest : public ::testing::TestWithParam<VolumeParamTestParam>,
class VolumeLevelParamTest : public ::testing::TestWithParam<VolumeLevelTestParam>,
                             public VolumeControlHelper {
  public:
    VolumeParamTest()
        : mParamLevel(std::get<PARAM_LEVEL>(GetParam())),
          mParamMute(std::get<PARAM_MUTE>(GetParam())) {
    VolumeLevelParamTest() : mParamLevel(std::get<PARAM_LEVEL>(GetParam())) {
        std::tie(mFactory, mDescriptor) = std::get<PARAM_INSTANCE_NAME>(GetParam());
    }

@@ -125,13 +122,31 @@ class VolumeParamTest : public ::testing::TestWithParam<VolumeParamTestParam>,
    void TearDown() override { TearDownVolumeControl(); }

    int mParamLevel = 0;
    bool mParamMute = false;
};

TEST_P(VolumeParamTest, SetAndGetParams) {
TEST_P(VolumeLevelParamTest, SetAndGetParams) {
    ASSERT_NO_FATAL_FAILURE(
            setAndVerifyParameters(Volume::levelDb, mParamLevel,
                                   isLevelValid(mParamLevel) ? EX_NONE : EX_ILLEGAL_ARGUMENT));
}

enum VolumeMuteParamName { MUTE_PARAM_INSTANCE_NAME, PARAM_MUTE };
using VolumeMuteTestParam = std::tuple<std::pair<std::shared_ptr<IFactory>, Descriptor>, bool>;

class VolumeMuteParamTest : public ::testing::TestWithParam<VolumeMuteTestParam>,
                            public VolumeControlHelper {
  public:
    VolumeMuteParamTest() : mParamMute(std::get<PARAM_MUTE>(GetParam())) {
        std::tie(mFactory, mDescriptor) = std::get<MUTE_PARAM_INSTANCE_NAME>(GetParam());
    }

    void SetUp() override { ASSERT_NO_FATAL_FAILURE(SetUpVolumeControl()); }
    void TearDown() override { TearDownVolumeControl(); }

    bool mParamMute = false;
};

TEST_P(VolumeMuteParamTest, SetAndGetParams) {
    ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::mute, mParamMute, EX_NONE));
}

@@ -298,25 +313,40 @@ TEST_P(VolumeDataTest, DecreasingLevels) {

std::vector<std::pair<std::shared_ptr<IFactory>, Descriptor>> kDescPair;
INSTANTIATE_TEST_SUITE_P(
        VolumeTest, VolumeParamTest,
        VolumeTest, VolumeLevelParamTest,
        ::testing::Combine(
                testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
                                          IFactory::descriptor, getEffectTypeUuidVolume())),
                testing::ValuesIn(
                        EffectHelper::getTestValueSet<Volume, int, Range::volume, Volume::levelDb>(
                                kDescPair, EffectHelper::expandTestValueBasic<int>)),
                testing::Bool() /* mute */),
        [](const testing::TestParamInfo<VolumeParamTest::ParamType>& info) {
                                kDescPair, EffectHelper::expandTestValueBasic<int>))),
        [](const testing::TestParamInfo<VolumeLevelParamTest::ParamType>& info) {
            auto descriptor = std::get<PARAM_INSTANCE_NAME>(info.param).second;
            std::string level = std::to_string(std::get<PARAM_LEVEL>(info.param));
            std::string name = getPrefix(descriptor) + "_level" + level;
            std::replace_if(
                    name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_');
            return name;
        });

GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VolumeLevelParamTest);

INSTANTIATE_TEST_SUITE_P(
        VolumeTest, VolumeMuteParamTest,
        ::testing::Combine(
                testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
                                          IFactory::descriptor, getEffectTypeUuidVolume())),
                testing::Bool() /* mute */),
        [](const testing::TestParamInfo<VolumeMuteParamTest::ParamType>& info) {
            auto descriptor = std::get<MUTE_PARAM_INSTANCE_NAME>(info.param).second;
            std::string mute = std::to_string(std::get<PARAM_MUTE>(info.param));
            std::string name = getPrefix(descriptor) + "_level" + level + "_mute" + mute;
            std::string name = getPrefix(descriptor) + "_mute" + mute;
            std::replace_if(
                    name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_');
            return name;
        });

GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VolumeParamTest);
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VolumeMuteParamTest);

INSTANTIATE_TEST_SUITE_P(VolumeTest, VolumeDataTest,
                         testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(