Skip DynamicsProcessing postEqBand and data test for HAL versions < 3
Post EQ band and most data testing introduced in Android16
Flag: TEST_ONLY
Bug: 401131454
Bug: 405022808
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a9dba9cf968e461203b83d53c3739304dd4a4fb2)
Merged-In: I01dcabc648b743c8bb008dc0207f135fc5aec45c
Change-Id: I01dcabc648b743c8bb008dc0207f135fc5aec45c
diff --git a/audio/aidl/vts/TestUtils.h b/audio/aidl/vts/TestUtils.h
index 9ebdc6e..e5000e3 100644
--- a/audio/aidl/vts/TestUtils.h
+++ b/audio/aidl/vts/TestUtils.h
@@ -113,6 +113,14 @@
} \
})
+#define SKIP_TEST_IF_VERSION_UNSUPPORTED(effect, minVersion) \
+ ({ \
+ if (int version = getHalVersion(effect); version < (minVersion)) { \
+ GTEST_SKIP() << "Skipping for HAL version: " << version \
+ << ", minimal version: " << (minVersion) << "\n"; \
+ } \
+ })
+
// Test that the transaction status 'isOk' if it is a known transaction
#define EXPECT_IS_OK_OR_UNKNOWN_TRANSACTION(ret) \
EXPECT_PRED_FORMAT1( \
diff --git a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp
index c3c1e9e..2d2c033 100644
--- a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp
@@ -167,10 +167,7 @@
void SetUp() override {
SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags);
ASSERT_NO_FATAL_FAILURE(SetUpBassBoost(mChannelLayout));
- if (int32_t version;
- mEffect->getInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) {
- GTEST_SKIP() << "Skipping the data test for version: " << version << "\n";
- }
+ SKIP_TEST_IF_VERSION_UNSUPPORTED(mEffect, kMinDataTestHalVersion);
}
void TearDown() override {
diff --git a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp
index 720a040..ed87f78 100644
--- a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp
@@ -217,10 +217,7 @@
void SetUp() override {
SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags);
ASSERT_NO_FATAL_FAILURE(SetUpDownmix(mInputChannelLayout));
- if (int32_t version;
- mEffect->getInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) {
- GTEST_SKIP() << "Skipping the data test for version: " << version << "\n";
- }
+ SKIP_TEST_IF_VERSION_UNSUPPORTED(mEffect, kMinDataTestHalVersion);
if (!isLayoutValid(mInputChannelLayout)) {
GTEST_SKIP() << "Layout not supported \n";
}
@@ -372,10 +369,7 @@
void SetUp() override {
ASSERT_NO_FATAL_FAILURE(SetUpDownmix(mInputChannelLayout));
- if (int32_t version;
- mEffect->getInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) {
- GTEST_SKIP() << "Skipping the data test for version: " << version << "\n";
- }
+ SKIP_TEST_IF_VERSION_UNSUPPORTED(mEffect, kMinDataTestHalVersion);
if (!isLayoutValid(mInputChannelLayout)) {
GTEST_SKIP() << "Layout not supported \n";
}
diff --git a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
index 98f7d79..8f98959 100644
--- a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
+++ b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
@@ -127,6 +127,7 @@
void checkInputAndOutputEquality(const std::vector<float>& outputMag);
void setUpDataTest(const std::vector<int>& testFrequencies, float fullScaleSineDb);
+ void tearDownDataTest();
void createChannelConfig();
@@ -141,8 +142,6 @@
void addLimiterConfig(const std::vector<DynamicsProcessing::LimiterConfig>& cfg);
void addInputGain(const std::vector<DynamicsProcessing::InputGain>& inputGain);
- void checkHalVersion();
-
static constexpr float kPreferredProcessingDurationMs = 10.0f;
static constexpr int kBandCount = 5;
static constexpr int kSamplingFrequency = 44100;
@@ -465,6 +464,8 @@
float fullScaleSineDb) {
ASSERT_NO_FATAL_FAILURE(SetUpDynamicsProcessingEffect());
SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags);
+ SKIP_TEST_IF_VERSION_UNSUPPORTED(mEffect, kMinDataTestHalVersion);
+
mInput.resize(kFrameCount * mChannelCount);
ASSERT_NO_FATAL_FAILURE(
generateSineWave(testFrequencies, mInput, 1.0, kSamplingFrequency, mChannelLayout));
@@ -472,6 +473,10 @@
ASSERT_NEAR(mInputDb, fullScaleSineDb, kToleranceDb);
}
+void DynamicsProcessingTestHelper::tearDownDataTest() {
+ ASSERT_NO_FATAL_FAILURE(TearDownDynamicsProcessingEffect());
+}
+
void DynamicsProcessingTestHelper::createChannelConfig() {
for (int i = 0; i < mChannelCount; i++) {
mChannelConfig.push_back(DynamicsProcessing::ChannelConfig(i, true));
@@ -553,13 +558,6 @@
mTags.push_back({DynamicsProcessing::inputGain, dp});
}
-void DynamicsProcessingTestHelper::checkHalVersion() {
- if (int32_t version;
- mEffect->getInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) {
- GTEST_SKIP() << "Skipping the data test for version: " << version << "\n";
- }
-}
-
void fillLimiterConfig(std::vector<DynamicsProcessing::LimiterConfig>& limiterConfigList,
int channelIndex, bool enable, int linkGroup, float attackTime,
float releaseTime, float ratio, float threshold, float postGain) {
@@ -729,7 +727,7 @@
ASSERT_NO_FATAL_FAILURE(setUpDataTest({kInputFrequency}, kSineFullScaleDb));
}
- void TearDown() override { TearDownDynamicsProcessingEffect(); }
+ void TearDown() override { ASSERT_NO_FATAL_FAILURE(tearDownDataTest()); }
void cleanUpInputGainConfig() {
CleanUp();
@@ -857,7 +855,7 @@
ASSERT_NO_FATAL_FAILURE(setUpDataTest({kInputFrequency}, kSineFullScaleDb));
}
- void TearDown() override { TearDownDynamicsProcessingEffect(); }
+ void TearDown() override { ASSERT_NO_FATAL_FAILURE(tearDownDataTest()); }
void computeThreshold(float ratio, float outputDb, float& threshold) {
EXPECT_NE(ratio, 0);
@@ -1233,6 +1231,8 @@
}
TEST_P(DynamicsProcessingTestEqBandConfig, SetAndGetPostEqBandConfig) {
+ SKIP_TEST_IF_VERSION_UNSUPPORTED(mEffect, kMinDataTestHalVersion);
+
mEngineConfigPreset.postEqStage.bandCount = mCfgs.size();
addEngineConfig(mEngineConfigPreset);
std::vector<DynamicsProcessing::ChannelConfig> cfgs(mChannelCount);
@@ -1330,7 +1330,7 @@
setUpDataTest(mMultitoneTestFrequencies, kSineMultitoneFullScaleDb));
}
- void TearDown() override { TearDownDynamicsProcessingEffect(); }
+ void TearDown() override { ASSERT_NO_FATAL_FAILURE(tearDownDataTest()); }
void addEqParam(bool isPreEq) {
createChannelConfig();
@@ -1558,7 +1558,7 @@
setUpDataTest(mMultitoneTestFrequencies, kSineMultitoneFullScaleDb));
}
- void TearDown() override { TearDownDynamicsProcessingEffect(); }
+ void TearDown() override { ASSERT_NO_FATAL_FAILURE(tearDownDataTest()); }
void setMbcParamsAndProcess(std::vector<float>& output) {
createChannelConfig();
diff --git a/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp b/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp
index 1b0b681..25d3a02 100644
--- a/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp
@@ -298,10 +298,7 @@
void SetUp() override {
ASSERT_NO_FATAL_FAILURE(SetUpHapticGenerator(mChMask));
- if (int32_t version;
- mEffect->getInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) {
- GTEST_SKIP() << "Skipping the data test for version: " << version << "\n";
- }
+ SKIP_TEST_IF_VERSION_UNSUPPORTED(mEffect, kMinDataTestHalVersion);
}
void TearDown() override { ASSERT_NO_FATAL_FAILURE(TearDownHapticGenerator()); }