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

Commit 86e97b5f authored by Wonsik Kim's avatar Wonsik Kim Committed by Cherrypicker Worker
Browse files

VtsHalMediaOmx: fix OmxCodecAllowedTest to match requirement

Bug: 249043823
Bug: 251553217
Test: atest VtsHalMediaOmxV1_0TargetStoreTest
Change-Id: I8015d559d8e7d88a32d1970102167fe4d7566c51
(cherry picked from commit db13ce5d)
Merged-In: I8015d559d8e7d88a32d1970102167fe4d7566c51
parent f38d908d
Loading
Loading
Loading
Loading
+10 −15
Original line number Diff line number Diff line
@@ -374,21 +374,16 @@ TEST_P(StoreHidlTest, ListRoles) {
    }
}

static int getFirstApiLevel() {
    int boardApiLevel = android::base::GetIntProperty("ro.board.first_api_level", 0);
    if (boardApiLevel != 0) {
        return boardApiLevel;
    }

    return android::base::GetIntProperty("ro.product.first_api_level", __ANDROID_API_T__);
}

static bool isTV() {
    return testing::deviceSupportsFeature("android.software.leanback");
}

// list components and roles.
TEST_P(StoreHidlTest, OmxCodecAllowedTest) {
    static int sBoardFirstApiLevel = android::base::GetIntProperty("ro.board.first_api_level", 0);
    if (sBoardFirstApiLevel == 0) {
        GTEST_SKIP() << "board first API level not detected";
    }
    hidl_vec<IOmx::ComponentInfo> componentInfos = getComponentInfoList(omx);
    for (IOmx::ComponentInfo info : componentInfos) {
        for (std::string role : info.mRoles) {
@@ -396,19 +391,19 @@ TEST_P(StoreHidlTest, OmxCodecAllowedTest) {
                role.find("video_encoder") != std::string::npos) {
                // Codec2 is not mandatory on Android TV devices that launched with Android S
                if (isTV()) {
                    ASSERT_LT(getFirstApiLevel(), __ANDROID_API_T__)
                    ASSERT_LT(sBoardFirstApiLevel, __ANDROID_API_T__)
                            << " Component: " << info.mName.c_str() << " Role: " << role.c_str()
                            << " not allowed for devices launching with Android T and above";
                } else {
                    std::string codecName = info.mName;
                    bool isAndroidCodec = (codecName.rfind("OMX.google", 0) != std::string::npos);
                    if (isAndroidCodec && (getFirstApiLevel() <= __ANDROID_API_S__)) {
                    if (isAndroidCodec && (sBoardFirstApiLevel <= __ANDROID_API_S__)) {
                        // refer b/230582620
                        // S AOSP build did not remove the OMX.google video codecs
                        // so it is infeasible to require no OMX.google.* video codecs
                        // on S launching devices
                    } else {
                        ASSERT_LT(getFirstApiLevel(), __ANDROID_API_S__)
                        ASSERT_LT(sBoardFirstApiLevel, __ANDROID_API_S__)
                                << " Component: " << info.mName.c_str() << " Role: " << role.c_str()
                                << " not allowed for devices launching with Android S and above";
                    }
@@ -416,7 +411,7 @@ TEST_P(StoreHidlTest, OmxCodecAllowedTest) {
            }
            if (role.find("audio_decoder") != std::string::npos ||
                role.find("audio_encoder") != std::string::npos) {
                ASSERT_LT(getFirstApiLevel(), __ANDROID_API_T__)
                ASSERT_LT(sBoardFirstApiLevel, __ANDROID_API_T__)
                        << " Component: " << info.mName.c_str() << " Role: " << role.c_str()
                        << " not allowed for devices launching with Android T and above";
            }