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

Commit f4c09fbb authored by Amy Zhang's avatar Amy Zhang
Browse files

Add filter linkage test to the Tuner VTS

Test: atest VtsHalTvTunerV1_0TargetTest
Bug: 150953857
Change-Id: Ic98cf1655551623fdc4e4f7e6784faf814adfda5
parent ac4ee962
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -139,6 +139,8 @@ Return<void> Tuner::getDemuxCaps(getDemuxCaps_cb _hidl_cb) {

    DemuxCapabilities caps;

    // IP filter can be an MMTP filter's data source.
    caps.linkCaps = {0x00, 0x00, 0x02, 0x00, 0x00};
    _hidl_cb(Result::SUCCESS, caps);
    return Void();
}
+13 −0
Original line number Diff line number Diff line
@@ -33,6 +33,19 @@ AssertionResult DemuxTests::setDemuxFrontendDataSource(uint32_t frontendId) {
    return AssertionResult(status.isOk());
}

AssertionResult DemuxTests::getDemuxCaps(DemuxCapabilities& demuxCaps) {
    if (!mDemux) {
        ALOGW("[vts] Test with openDemux first.");
        return failure();
    }
    Result status;
    mService->getDemuxCaps([&](Result result, DemuxCapabilities caps) {
        status = result;
        demuxCaps = caps;
    });
    return AssertionResult(status == Result::SUCCESS);
}

AssertionResult DemuxTests::closeDemux() {
    EXPECT_TRUE(mDemux) << "Test with openDemux first.";
    auto status = mDemux->close();
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@
using android::sp;
using android::hardware::Return;
using android::hardware::Void;
using android::hardware::tv::tuner::V1_0::DemuxCapabilities;
using android::hardware::tv::tuner::V1_0::IDemux;
using android::hardware::tv::tuner::V1_0::IFilter;
using android::hardware::tv::tuner::V1_0::ITuner;
@@ -45,6 +46,7 @@ class DemuxTests {
    AssertionResult setDemuxFrontendDataSource(uint32_t frontendId);
    void getAvSyncId(sp<IFilter> filter, uint32_t& avSyncHwId);
    void getAvSyncTime(uint32_t avSyncId);
    AssertionResult getDemuxCaps(DemuxCapabilities& demuxCaps);
    AssertionResult closeDemux();

  protected:
+20 −0
Original line number Diff line number Diff line
@@ -197,6 +197,26 @@ AssertionResult FilterTests::getFilterMQDescriptor(uint32_t filterId) {
    return AssertionResult(status == Result::SUCCESS);
}

AssertionResult FilterTests::setFilterDataSource(uint32_t sourceFilterId, uint32_t sinkFilterId) {
    if (!mFilters[sourceFilterId] || !mFilters[sinkFilterId]) {
        ALOGE("[vts] setFilterDataSource filter not opened.");
        return failure();
    }

    auto status = mFilters[sinkFilterId]->setDataSource(mFilters[sourceFilterId]);
    return AssertionResult(status == Result::SUCCESS);
}

AssertionResult FilterTests::setFilterDataSourceToDemux(uint32_t filterId) {
    if (!mFilters[filterId]) {
        ALOGE("[vts] setFilterDataSourceToDemux filter not opened.");
        return failure();
    }

    auto status = mFilters[filterId]->setDataSource(NULL);
    return AssertionResult(status == Result::SUCCESS);
}

AssertionResult FilterTests::startFilter(uint32_t filterId) {
    EXPECT_TRUE(mFilters[filterId]) << "Test with getNewlyOpenedFilterId first.";
    Result status = mFilters[filterId]->start();
+2 −0
Original line number Diff line number Diff line
@@ -154,6 +154,8 @@ class FilterTests {
    AssertionResult getNewlyOpenedFilterId(uint32_t& filterId);
    AssertionResult configFilter(DemuxFilterSettings setting, uint32_t filterId);
    AssertionResult getFilterMQDescriptor(uint32_t filterId);
    AssertionResult setFilterDataSource(uint32_t sourceFilterId, uint32_t sinkFilterId);
    AssertionResult setFilterDataSourceToDemux(uint32_t filterId);
    AssertionResult startFilter(uint32_t filterId);
    AssertionResult stopFilter(uint32_t filterId);
    AssertionResult closeFilter(uint32_t filterId);
Loading