diff --git a/media/omx/1.0/vts/functional/store/VtsHalMediaOmxV1_0TargetStoreTest.cpp b/media/omx/1.0/vts/functional/store/VtsHalMediaOmxV1_0TargetStoreTest.cpp index 8699de3eb8..d9a6363ec9 100644 --- a/media/omx/1.0/vts/functional/store/VtsHalMediaOmxV1_0TargetStoreTest.cpp +++ b/media/omx/1.0/vts/functional/store/VtsHalMediaOmxV1_0TargetStoreTest.cpp @@ -20,7 +20,9 @@ #endif #include +#include #include +#include #include #include @@ -371,6 +373,31 @@ TEST_P(StoreHidlTest, ListRoles) { } } +static int getFirstApiLevel() { + return android::base::GetIntProperty("ro.product.first_api_level", __ANDROID_API_T__); +} + +// list components and roles. +TEST_P(StoreHidlTest, OmxCodecAllowedTest) { + hidl_vec componentInfos = getComponentInfoList(omx); + for (IOmx::ComponentInfo info : componentInfos) { + for (std::string role : info.mRoles) { + if (role.find("video_decoder") != std::string::npos || + role.find("video_encoder") != std::string::npos) { + ASSERT_LT(getFirstApiLevel(), __ANDROID_API_S__) + << " Component: " << info.mName.c_str() << " Role: " << role.c_str() + << " not allowed for devices launching with Android S and above"; + } + if (role.find("audio_decoder") != std::string::npos || + role.find("audio_encoder") != std::string::npos) { + ASSERT_LT(getFirstApiLevel(), __ANDROID_API_T__) + << " Component: " << info.mName.c_str() << " Role: " << role.c_str() + << " not allowed for devices launching with Android T and above"; + } + } + } +} + // list components and roles. TEST_P(StoreHidlTest, ListNodes) { description("enumerate component and roles");