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

Commit 42aedcc4 authored by Amy Zhang's avatar Amy Zhang Committed by Android (Google) Code Review
Browse files

Merge "Add VTS to test link/unlinkCicam in IFrontend" into sc-dev

parents e93b8ed6 da3a54da
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -274,6 +274,7 @@ AssertionResult FilterTests::startFilter(uint64_t filterId) {
AssertionResult FilterTests::stopFilter(uint64_t filterId) {
    EXPECT_TRUE(mFilters[filterId]) << "Test with getNewlyOpenedFilterId first.";
    Result status = mFilters[filterId]->stop();

    return AssertionResult(status == Result::SUCCESS);
}

+34 −0
Original line number Diff line number Diff line
@@ -305,6 +305,36 @@ AssertionResult FrontendTests::getFrontendDtmbCaps(uint32_t id) {
    return AssertionResult(status == Result::SUCCESS);
}

AssertionResult FrontendTests::linkCiCam(uint32_t ciCamId) {
    sp<android::hardware::tv::tuner::V1_1::IFrontend> frontend_1_1;
    frontend_1_1 = android::hardware::tv::tuner::V1_1::IFrontend::castFrom(mFrontend);
    if (frontend_1_1 == nullptr) {
        EXPECT_TRUE(false) << "Couldn't get 1.1 IFrontend from the Hal implementation.";
        return failure();
    }

    Result status;
    uint32_t ltsId;
    frontend_1_1->linkCiCam(ciCamId, [&](Result r, uint32_t id) {
        status = r;
        ltsId = id;
    });

    return AssertionResult(status == Result::SUCCESS);
}

AssertionResult FrontendTests::unlinkCiCam(uint32_t ciCamId) {
    sp<android::hardware::tv::tuner::V1_1::IFrontend> frontend_1_1;
    frontend_1_1 = android::hardware::tv::tuner::V1_1::IFrontend::castFrom(mFrontend);
    if (frontend_1_1 == nullptr) {
        EXPECT_TRUE(false) << "Couldn't get 1.1 IFrontend from the Hal implementation.";
        return failure();
    }

    Result status = frontend_1_1->unlinkCiCam(ciCamId);
    return AssertionResult(status == Result::SUCCESS);
}

void FrontendTests::verifyFrontendStatusExt1_1(vector<FrontendStatusTypeExt1_1> statusTypes,
                                               vector<FrontendStatusExt1_1> expectStatuses) {
    ASSERT_TRUE(mFrontend) << "Frontend is not opened yet.";
@@ -465,6 +495,10 @@ void FrontendTests::tuneTest(FrontendConfig frontendConf) {
    ASSERT_TRUE(feId != INVALID_ID);
    ASSERT_TRUE(openFrontendById(feId));
    ASSERT_TRUE(setFrontendCallback());
    if (frontendConf.canConnectToCiCam) {
        ASSERT_TRUE(linkCiCam(frontendConf.ciCamId));
        ASSERT_TRUE(unlinkCiCam(frontendConf.ciCamId));
    }
    ASSERT_TRUE(tuneFrontend(frontendConf, false /*testWithDemux*/));
    verifyFrontendStatusExt1_1(frontendConf.tuneStatusTypes, frontendConf.expectTuneStatuses);
    ASSERT_TRUE(stopTuneFrontend(false /*testWithDemux*/));
+3 −0
Original line number Diff line number Diff line
@@ -123,6 +123,9 @@ class FrontendTests {
    AssertionResult closeFrontend();
    AssertionResult getFrontendDtmbCaps(uint32_t);

    AssertionResult linkCiCam(uint32_t ciCamId);
    AssertionResult unlinkCiCam(uint32_t ciCamId);

    void getFrontendIdByType(FrontendType feType, uint32_t& feId);
    void tuneTest(FrontendConfig frontendConf);
    void scanTest(FrontendConfig frontend, FrontendScanType type);
+5 −0
Original line number Diff line number Diff line
@@ -211,6 +211,11 @@ TEST_P(TunerFrontendHidlTest, GetFrontendDtmbCaps) {
    mFrontendTests.getFrontendDtmbCapsTest();
}

TEST_P(TunerFrontendHidlTest, LinkToCiCam) {
    description("Test Frontend link to CiCam");
    mFrontendTests.tuneTest(frontendArray[defaultFrontend]);
}

INSTANTIATE_TEST_SUITE_P(
        PerInstance, TunerBroadcastHidlTest,
        testing::ValuesIn(android::hardware::getAllHalInstanceNames(ITuner::descriptor)),
+5 −0
Original line number Diff line number Diff line
@@ -103,6 +103,8 @@ struct FilterConfig {

struct FrontendConfig {
    bool isSoftwareFe;
    bool canConnectToCiCam;
    uint32_t ciCamId;
    FrontendType type;
    FrontendSettings settings;
    FrontendSettingsExt1_1 settingsExt1_1;
@@ -121,6 +123,7 @@ static FrontendConfig frontendArray[FILTER_MAX];
static FrontendConfig frontendScanArray[SCAN_MAX];
static FilterConfig filterArray[FILTER_MAX];
static DvrConfig dvrArray[DVR_MAX];
static int defaultFrontend = DVBT;

/** Configuration array for the frontend tune test */
inline void initFrontendConfig() {
@@ -150,6 +153,8 @@ inline void initFrontendConfig() {
    frontendArray[DVBT].tuneStatusTypes = types;
    frontendArray[DVBT].expectTuneStatuses = statuses;
    frontendArray[DVBT].isSoftwareFe = true;
    frontendArray[DVBT].canConnectToCiCam = true;
    frontendArray[DVBT].ciCamId = 0;
    frontendArray[DVBT].settingsExt1_1.settingExt.dvbt({
            .transmissionMode =
                    android::hardware::tv::tuner::V1_1::FrontendDvbtTransmissionMode::MODE_8K_E,