From 083aa97084b9983553e8d0a5d7b43272fd4d39b7 Mon Sep 17 00:00:00 2001 From: Aayush Soni Date: Mon, 21 Oct 2024 14:57:16 +0000 Subject: [PATCH] VisualizerTest: Refactor Visualizer VTS Target Test This change refactors the VtsHalVisualizerTargetTest by introducing the VisualizerTestHelper class and the VisualizerDataTest class, which inherits from the helper class. The refactor retains the original test's behavior. Bug: 305866207 Test: atest VtsHalVisualizerTargetTest Change-Id: I008698b89b8416a6c6a5af3aaf8b7256e2a29498 --- audio/aidl/vts/VtsHalVisualizerTargetTest.cpp | 104 +++++++++++------- 1 file changed, 62 insertions(+), 42 deletions(-) diff --git a/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp b/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp index f89cb4016b..a0e43bc37e 100644 --- a/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp +++ b/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp @@ -48,27 +48,23 @@ using VisualizerParamTestParam = std::tuple, Descriptor>, int, Visualizer::ScalingMode, Visualizer::MeasurementMode, int>; -class VisualizerParamTest : public ::testing::TestWithParam, - public EffectHelper { +class VisualizerTestHelper : public EffectHelper { public: - VisualizerParamTest() - : mCaptureSize(std::get(GetParam())), - mScalingMode(std::get(GetParam())), - mMeasurementMode(std::get(GetParam())), - mLatency(std::get(GetParam())) { - std::tie(mFactory, mDescriptor) = std::get(GetParam()); - - size_t channelCount = - getChannelCount(AudioChannelLayout::make( - AudioChannelLayout::LAYOUT_STEREO)); - mBufferSizeInFrames = kInputFrameCount * channelCount; - mInputBuffer.resize(mBufferSizeInFrames); - generateInputBuffer(mInputBuffer, 0, true, channelCount, kMaxAudioSampleValue); - - mOutputBuffer.resize(mBufferSizeInFrames); + VisualizerTestHelper( + std::pair, Descriptor> descPair = {}, int captureSize = 128, + int latency = 0, + Visualizer::ScalingMode scalingMode = Visualizer::ScalingMode::NORMALIZED, + Visualizer::MeasurementMode measurementMode = Visualizer::MeasurementMode::NONE) + : mCaptureSize(captureSize), + mLatency(latency), + mScalingMode(scalingMode), + mMeasurementMode(measurementMode), + mInputBuffer(mBufferSizeInFrames), + mOutputBuffer(mBufferSizeInFrames) { + std::tie(mFactory, mDescriptor) = descPair; } - void SetUp() override { + void SetUpVisualizer() { ASSERT_NE(nullptr, mFactory); ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); @@ -80,28 +76,14 @@ class VisualizerParamTest : public ::testing::TestWithParam mFactory; - std::shared_ptr mEffect; - Descriptor mDescriptor; - int mCaptureSize; - Visualizer::ScalingMode mScalingMode = Visualizer::ScalingMode::NORMALIZED; - Visualizer::MeasurementMode mMeasurementMode = Visualizer::MeasurementMode::NONE; - int mLatency = 0; - int mVersion = 0; - std::vector mInputBuffer; - std::vector mOutputBuffer; - size_t mBufferSizeInFrames; - IEffect::OpenEffectReturn mOpenEffectReturn; - bool mAllParamsValid = true; - - void SetAndGetParameters() { + void SetAndGetParameters(bool* allParamsValid = nullptr) { + if (allParamsValid != nullptr) *allParamsValid = true; for (auto& it : mCommonTags) { auto& tag = it.first; auto& vs = it.second; @@ -111,7 +93,9 @@ class VisualizerParamTest : public ::testing::TestWithParamgetDescriptor(&desc)); const bool valid = isParameterValid(vs, desc); const binder_exception_t expected = valid ? EX_NONE : EX_ILLEGAL_ARGUMENT; - if (expected == EX_ILLEGAL_ARGUMENT) mAllParamsValid = false; + if (expected == EX_ILLEGAL_ARGUMENT && allParamsValid != nullptr) { + *allParamsValid = false; + } // set parameter Parameter expectParam; @@ -155,6 +139,44 @@ class VisualizerParamTest : public ::testing::TestWithParam(latency)}); } + static constexpr long kInputFrameCount = 0x100, kOutputFrameCount = 0x100; + const size_t mChannelCount = + getChannelCount(AudioChannelLayout::make( + AudioChannelLayout::LAYOUT_STEREO)); + const size_t mBufferSizeInFrames = kInputFrameCount * mChannelCount; + const int mCaptureSize; + const int mLatency; + const Visualizer::ScalingMode mScalingMode; + const Visualizer::MeasurementMode mMeasurementMode; + int mVersion; + std::vector mInputBuffer; + std::vector mOutputBuffer; + std::shared_ptr mEffect; + std::shared_ptr mFactory; + Descriptor mDescriptor; + IEffect::OpenEffectReturn mOpenEffectReturn; + + private: + std::vector> mCommonTags; + void CleanUp() { mCommonTags.clear(); } +}; + +class VisualizerParamTest : public ::testing::TestWithParam, + public VisualizerTestHelper { + public: + VisualizerParamTest() + : VisualizerTestHelper(std::get(GetParam()), + std::get(GetParam()), + std::get(GetParam()), + std::get(GetParam()), + std::get(GetParam())) { + generateInputBuffer(mInputBuffer, 0, true, mChannelCount, kMaxAudioSampleValue); + } + + void SetUp() override { SetUpVisualizer(); } + + void TearDown() override { TearDownVisualizer(); } + static std::unordered_set getMeasurementModeValues() { return {ndk::enum_range().begin(), ndk::enum_range().end()}; @@ -164,10 +186,6 @@ class VisualizerParamTest : public ::testing::TestWithParam().begin(), ndk::enum_range().end()}; } - - private: - std::vector> mCommonTags; - void CleanUp() { mCommonTags.clear(); } }; TEST_P(VisualizerParamTest, SetAndGetCaptureSize) { @@ -192,11 +210,13 @@ TEST_P(VisualizerParamTest, SetAndGetLatency) { TEST_P(VisualizerParamTest, testCaptureSampleBufferSizeAndOutput) { SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + + bool allParamsValid = true; ASSERT_NO_FATAL_FAILURE(addCaptureSizeParam(mCaptureSize)); ASSERT_NO_FATAL_FAILURE(addScalingModeParam(mScalingMode)); ASSERT_NO_FATAL_FAILURE(addMeasurementModeParam(mMeasurementMode)); ASSERT_NO_FATAL_FAILURE(addLatencyParam(mLatency)); - ASSERT_NO_FATAL_FAILURE(SetAndGetParameters()); + ASSERT_NO_FATAL_FAILURE(SetAndGetParameters(&allParamsValid)); Parameter getParam; Parameter::Id id; @@ -209,7 +229,7 @@ TEST_P(VisualizerParamTest, testCaptureSampleBufferSizeAndOutput) { &mOpenEffectReturn, mVersion)); ASSERT_EQ(mInputBuffer, mOutputBuffer); - if (mAllParamsValid) { + if (allParamsValid) { std::vector captureBuffer = getParam.get() .get() .get();