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

Commit b238a54b authored by Henry Fang's avatar Henry Fang Committed by Automerger Merge Worker
Browse files

Merge "handle multiple cas plugins. some of them support descrambler, some of...

Merge "handle multiple cas plugins. some of them support descrambler, some of them don't" into sc-dev am: 11d5fd80

Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/interfaces/+/13563060

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I046bdd836f37f070cd503bbbb13839819a1a4ee8
parents 9873c06f 11d5fd80
Loading
Loading
Loading
Loading
+20 −14
Original line number Diff line number Diff line
@@ -256,12 +256,19 @@ class MediaCasHidlTest : public testing::TestWithParam<std::string> {

::testing::AssertionResult MediaCasHidlTest::createCasPlugin(int32_t caSystemId) {
    auto status = mService->isSystemIdSupported(caSystemId);
    bool skipDescrambler = false;
    if (!status.isOk() || !status) {
        return ::testing::AssertionFailure();
    }
    status = mService->isDescramblerSupported(caSystemId);
    if (!status.isOk() || !status) {
        if (mIsTestDescrambler) {
            return ::testing::AssertionFailure();
        } else {
            ALOGI("Skip Descrambler test since it's not required in cas@1.2.");
            mDescramblerBase = nullptr;
            skipDescrambler = true;
        }
    }

    mCasListener = new MediaCasListener();
@@ -274,16 +281,15 @@ class MediaCasHidlTest : public testing::TestWithParam<std::string> {
        return ::testing::AssertionFailure();
    }

    if (skipDescrambler) {
        return ::testing::AssertionSuccess();
    }

    auto descramblerStatus = mService->createDescrambler(caSystemId);
    if (!descramblerStatus.isOk()) {
        if (mIsTestDescrambler) {
        return ::testing::AssertionFailure();
        } else {
            ALOGI("Skip Descrambler test since it's not required in cas@1.2.");
            return ::testing::AssertionSuccess();
        }
    }
    mIsTestDescrambler = true;

    mDescramblerBase = descramblerStatus;
    return ::testing::AssertionResult(mDescramblerBase != nullptr);
}
@@ -506,7 +512,7 @@ TEST_P(MediaCasHidlTest, TestClearKeyApis) {
    returnStatus = mMediaCas->setSessionPrivateData(streamSessionId, hidlPvtData);
    EXPECT_TRUE(returnStatus.isOk());
    EXPECT_EQ(Status::OK, returnStatus);
    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        returnStatus = mDescramblerBase->setMediaCasSession(sessionId);
        EXPECT_TRUE(returnStatus.isOk());
        EXPECT_EQ(Status::OK, returnStatus);
@@ -556,7 +562,7 @@ TEST_P(MediaCasHidlTest, TestClearKeyApis) {
    EXPECT_TRUE(returnStatus.isOk());
    EXPECT_EQ(Status::OK, returnStatus);

    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        EXPECT_FALSE(mDescramblerBase->requiresSecureDecoderComponent("video/avc"));

        sp<IDescrambler> descrambler;
@@ -606,7 +612,7 @@ TEST_P(MediaCasHidlTest, TestClearKeySessionClosedAfterRelease) {
    EXPECT_TRUE(returnStatus.isOk());
    EXPECT_EQ(Status::OK, returnStatus);

    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        returnStatus = mDescramblerBase->setMediaCasSession(sessionId);
        EXPECT_TRUE(returnStatus.isOk());
        EXPECT_EQ(Status::ERROR_CAS_SESSION_NOT_OPENED, returnStatus);
@@ -672,7 +678,7 @@ TEST_P(MediaCasHidlTest, TestClearKeyErrors) {
    EXPECT_TRUE(returnStatus.isOk());
    EXPECT_EQ(Status::ERROR_CAS_UNKNOWN, returnStatus);

    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        /*
         * Test MediaDescrambler error codes
         */
@@ -720,7 +726,7 @@ TEST_P(MediaCasHidlTest, TestClearKeyOobFails) {
    std::vector<uint8_t> sessionId;
    ASSERT_TRUE(openCasSession(&sessionId));

    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        returnStatus = mDescramblerBase->setMediaCasSession(sessionId);
        EXPECT_TRUE(returnStatus.isOk());
        EXPECT_EQ(Status::OK, returnStatus);
@@ -732,7 +738,7 @@ TEST_P(MediaCasHidlTest, TestClearKeyOobFails) {
    EXPECT_TRUE(returnStatus.isOk());
    EXPECT_EQ(Status::OK, returnStatus);

    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        sp<IDescrambler> descrambler = IDescrambler::castFrom(mDescramblerBase);
        ASSERT_NE(nullptr, descrambler.get());

+15 −10
Original line number Diff line number Diff line
@@ -297,12 +297,19 @@ class MediaCasHidlTest : public testing::TestWithParam<std::string> {

::testing::AssertionResult MediaCasHidlTest::createCasPlugin(int32_t caSystemId) {
    auto status = mService->isSystemIdSupported(caSystemId);
    bool skipDescrambler = false;
    if (!status.isOk() || !status) {
        return ::testing::AssertionFailure();
    }
    status = mService->isDescramblerSupported(caSystemId);
    if (!status.isOk() || !status) {
        if (mIsTestDescrambler) {
            return ::testing::AssertionFailure();
        } else {
            ALOGI("Skip Descrambler test since it's not required in cas@1.2.");
            mDescramblerBase = nullptr;
            skipDescrambler = true;
        }
    }

    mCasListener = new MediaCasListener();
@@ -315,16 +322,14 @@ class MediaCasHidlTest : public testing::TestWithParam<std::string> {
        return ::testing::AssertionFailure();
    }

    if (skipDescrambler) {
        return ::testing::AssertionSuccess();
    }

    auto descramblerStatus = mService->createDescrambler(caSystemId);
    if (!descramblerStatus.isOk()) {
        if (mIsTestDescrambler) {
        return ::testing::AssertionFailure();
        } else {
            ALOGI("Skip Descrambler test since it's not required in cas@1.2.");
            return ::testing::AssertionSuccess();
        }
    }
    mIsTestDescrambler = true;

    mDescramblerBase = descramblerStatus;
    return ::testing::AssertionResult(mDescramblerBase != nullptr);
@@ -481,7 +486,7 @@ TEST_P(MediaCasHidlTest, TestClearKeyApisWithSession) {
    EXPECT_TRUE(returnStatus.isOk());
    EXPECT_EQ(Status::OK, returnStatus);

    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        returnStatus = mDescramblerBase->setMediaCasSession(sessionId);
        EXPECT_TRUE(returnStatus.isOk());
        EXPECT_EQ(Status::OK, returnStatus);
@@ -533,7 +538,7 @@ TEST_P(MediaCasHidlTest, TestClearKeyApisWithSession) {
    EXPECT_TRUE(returnStatus.isOk());
    EXPECT_EQ(Status::OK, returnStatus);

    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        EXPECT_FALSE(mDescramblerBase->requiresSecureDecoderComponent("video/avc"));

        sp<IDescrambler> descrambler;
+11 −7
Original line number Diff line number Diff line
@@ -311,7 +311,6 @@ class MediaCasHidlTest : public testing::TestWithParam<std::string> {
    sp<ICas> mMediaCas;
    sp<IDescramblerBase> mDescramblerBase;
    sp<MediaCasListener> mCasListener;
    bool mIsTestDescrambler = false;
    typedef struct _OobInputTestParams {
        const SubSample* subSamples;
        uint32_t numSubSamples;
@@ -336,12 +335,15 @@ class MediaCasHidlTest : public testing::TestWithParam<std::string> {

::testing::AssertionResult MediaCasHidlTest::createCasPlugin(int32_t caSystemId) {
    auto status = mService->isSystemIdSupported(caSystemId);
    bool skipDescrambler = false;
    if (!status.isOk() || !status) {
        return ::testing::AssertionFailure();
    }
    status = mService->isDescramblerSupported(caSystemId);
    if (!status.isOk() || !status) {
        return ::testing::AssertionFailure();
        ALOGI("Skip Descrambler test since it's not required in cas@1.2.");
        mDescramblerBase = nullptr;
        skipDescrambler = true;
    }

    mCasListener = new MediaCasListener();
@@ -354,12 +356,14 @@ class MediaCasHidlTest : public testing::TestWithParam<std::string> {
        return ::testing::AssertionFailure();
    }

    if (skipDescrambler) {
        return ::testing::AssertionSuccess();
    }

    auto descramblerStatus = mService->createDescrambler(caSystemId);
    if (!descramblerStatus.isOk()) {
        ALOGI("Skip Descrambler test since it's not required in cas@1.2.");
        return ::testing::AssertionSuccess();
        return ::testing::AssertionFailure();
    }
    mIsTestDescrambler = true;

    mDescramblerBase = descramblerStatus;
    return ::testing::AssertionResult(mDescramblerBase != nullptr);
@@ -516,7 +520,7 @@ TEST_P(MediaCasHidlTest, TestClearKeyApisWithSession) {
    EXPECT_TRUE(returnStatus.isOk());
    EXPECT_EQ(Status::OK, returnStatus);

    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        returnStatus = mDescramblerBase->setMediaCasSession(sessionId);
        EXPECT_TRUE(returnStatus.isOk());
        EXPECT_EQ(Status::OK, returnStatus);
@@ -571,7 +575,7 @@ TEST_P(MediaCasHidlTest, TestClearKeyApisWithSession) {
    EXPECT_TRUE(returnStatus.isOk());
    EXPECT_EQ(Status::OK, returnStatus);

    if (mIsTestDescrambler) {
    if (mDescramblerBase != nullptr) {
        EXPECT_FALSE(mDescramblerBase->requiresSecureDecoderComponent("video/avc"));

        sp<IDescrambler> descrambler;