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

Commit 78b42119 authored by Frankie Lizcano's avatar Frankie Lizcano Committed by Android (Google) Code Review
Browse files

Merge changes Icb2d96b3,I76c05ca2,Icdbf8961,I74cc059e

* changes:
  Improve Tuner VTS: Generate Live Combos
  Improve Tuner VTS: Generate DVR Record Combos
  Improve Tuner VTS: Generate TimeFilter Combinations
  Tuner VTS: Pair Audio and Video Filters
parents 09ca3c1d 8b87f25f
Loading
Loading
Loading
Loading
+201 −94
Original line number Diff line number Diff line
@@ -260,7 +260,9 @@ void TunerRecordAidlTest::recordSingleFilterTestWithLnb(FilterConfig filterConf,
    for (auto msgName : lnbRecord.diseqcMsgs) {
        ASSERT_TRUE(mLnbTests.sendDiseqcMessage(diseqcMsgMap[msgName]));
    }
    recordSingleFilterTest(filterConf, frontendConf, dvrConf);
    if (!frontendConf.isSoftwareFe) {
        recordSingleFilterTest(filterConf, frontendConf, dvrConf, Dataflow_Context::LNBRECORD);
    }
    ASSERT_TRUE(mLnbTests.closeLnb());
    mLnbId = INVALID_LNB_ID;
}
@@ -318,13 +320,15 @@ void TunerRecordAidlTest::attachSingleFilterToRecordDvrTest(FilterConfig filterC
}

void TunerRecordAidlTest::recordSingleFilterTest(FilterConfig filterConf,
                                                 FrontendConfig frontendConf, DvrConfig dvrConf) {
                                                 FrontendConfig frontendConf, DvrConfig dvrConf,
                                                 Dataflow_Context context) {
    int32_t demuxId;
    std::shared_ptr<IDemux> demux;
    ASSERT_TRUE(mDemuxTests.openDemux(demux, demuxId));
    mDvrTests.setDemux(demux);

    DvrConfig dvrSourceConfig;
    if (context == Dataflow_Context::RECORD) {
        if (record.hasFrontendConnection) {
            int32_t feId;
            mFrontendTests.getFrontendIdByType(frontendConf.type, feId);
@@ -342,6 +346,22 @@ void TunerRecordAidlTest::recordSingleFilterTest(FilterConfig filterConf,
            ASSERT_TRUE(mDvrTests.configDvrPlayback(dvrSourceConfig.settings));
            ASSERT_TRUE(mDvrTests.getDvrPlaybackMQDescriptor());
        }
    } else if (context == Dataflow_Context::LNBRECORD) {
        // If function arrives here, frontend should not be software, so no need to configure a dvr
        // source or dvr fe connection that might be used for recording without an Lnb
        int32_t feId;
        mFrontendTests.getFrontendIdByType(frontendConf.type, feId);
        ASSERT_TRUE(feId != INVALID_ID);
        ASSERT_TRUE(mFrontendTests.openFrontendById(feId));
        ASSERT_TRUE(mFrontendTests.setFrontendCallback());
        if (mLnbId != INVALID_LNB_ID) {
            ASSERT_TRUE(mFrontendTests.setLnb(mLnbId));
        } else {
            FAIL();
        }
        ASSERT_TRUE(mDemuxTests.setDemuxFrontendDataSource(feId));
        mFrontendTests.setDvrTests(&mDvrTests);
    }

    int64_t filterId;
    std::shared_ptr<IFilter> filter;
@@ -360,6 +380,7 @@ void TunerRecordAidlTest::recordSingleFilterTest(FilterConfig filterConf,
    ASSERT_TRUE(mDvrTests.startDvrRecord());
    ASSERT_TRUE(mFilterTests.startFilter(filterId));

    if (context == Dataflow_Context::RECORD) {
        if (record.hasFrontendConnection) {
            ASSERT_TRUE(mFrontendTests.tuneFrontend(frontendConf, true /*testWithDemux*/));
        } else {
@@ -369,16 +390,22 @@ void TunerRecordAidlTest::recordSingleFilterTest(FilterConfig filterConf,
                    dvrSourceConfig.settings.get<DvrSettings::Tag::playback>());
            ASSERT_TRUE(mDvrTests.startDvrPlayback());
        }

    } else if (context == Dataflow_Context::LNBRECORD) {
        ASSERT_TRUE(mFrontendTests.tuneFrontend(frontendConf, true /*testWithDemux*/));
    }
    mDvrTests.testRecordOutput();
    mDvrTests.stopRecordThread();

    if (context == Dataflow_Context::RECORD) {
        if (record.hasFrontendConnection) {
            ASSERT_TRUE(mFrontendTests.stopTuneFrontend(true /*testWithDemux*/));
        } else {
            mDvrTests.stopPlaybackThread();
            ASSERT_TRUE(mDvrTests.stopDvrPlayback());
        }
    } else if (context == Dataflow_Context::LNBRECORD) {
        ASSERT_TRUE(mFrontendTests.stopTuneFrontend(true /*testWithDemux*/));
    }

    ASSERT_TRUE(mFilterTests.stopFilter(filterId));
    ASSERT_TRUE(mDvrTests.stopDvrRecord());
@@ -386,11 +413,15 @@ void TunerRecordAidlTest::recordSingleFilterTest(FilterConfig filterConf,
    ASSERT_TRUE(mFilterTests.closeFilter(filterId));
    mDvrTests.closeDvrRecord();

    if (context == Dataflow_Context::RECORD) {
        if (record.hasFrontendConnection) {
            ASSERT_TRUE(mFrontendTests.closeFrontend());
        } else {
            mDvrTests.closeDvrPlayback();
        }
    } else if (context == Dataflow_Context::LNBRECORD) {
        ASSERT_TRUE(mFrontendTests.closeFrontend());
    }

    ASSERT_TRUE(mDemuxTests.closeDemux());
}
@@ -526,6 +557,9 @@ TEST_P(TunerDemuxAidlTest, openDemux) {
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        int32_t feId;
        int32_t demuxId;
        std::shared_ptr<IDemux> demux;
@@ -538,14 +572,18 @@ TEST_P(TunerDemuxAidlTest, openDemux) {
        ASSERT_TRUE(mDemuxTests.closeDemux());
        ASSERT_TRUE(mFrontendTests.closeFrontend());
    }
}

TEST_P(TunerDemuxAidlTest, getAvSyncTime) {
    description("Get the A/V sync time from a PCR filter.");
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        if (live.pcrFilterId.compare(emptyHardwareId) == 0) {
        return;
            continue;
        }
        int32_t feId;
        int32_t demuxId;
@@ -565,7 +603,8 @@ TEST_P(TunerDemuxAidlTest, getAvSyncTime) {
        ASSERT_TRUE(mFilterTests.openFilterInDemux(filterMap[live.videoFilterId].type,
                                                   filterMap[live.videoFilterId].bufferSize));
        ASSERT_TRUE(mFilterTests.getNewlyOpenedFilterId_64bit(mediaFilterId));
    ASSERT_TRUE(mFilterTests.configFilter(filterMap[live.videoFilterId].settings, mediaFilterId));
        ASSERT_TRUE(
                mFilterTests.configFilter(filterMap[live.videoFilterId].settings, mediaFilterId));
        mediaFilter = mFilterTests.getFilterById(mediaFilterId);
        ASSERT_TRUE(mFilterTests.openFilterInDemux(filterMap[live.pcrFilterId].type,
                                                   filterMap[live.pcrFilterId].bufferSize));
@@ -579,6 +618,7 @@ TEST_P(TunerDemuxAidlTest, getAvSyncTime) {
        ASSERT_TRUE(mDemuxTests.closeDemux());
        ASSERT_TRUE(mFrontendTests.closeFrontend());
    }
}

TEST_P(TunerFilterAidlTest, StartFilterInDemux) {
    description("Open and start a filter in Demux.");
@@ -586,8 +626,12 @@ TEST_P(TunerFilterAidlTest, StartFilterInDemux) {
        return;
    }
    // TODO use parameterized tests
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        configSingleFilterInDemuxTest(filterMap[live.videoFilterId], frontendMap[live.frontendId]);
    }
}

TEST_P(TunerFilterAidlTest, ConfigIpFilterInDemuxWithCid) {
    description("Open and configure an ip filter in Demux.");
@@ -595,11 +639,15 @@ TEST_P(TunerFilterAidlTest, ConfigIpFilterInDemuxWithCid) {
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        if (live.ipFilterId.compare(emptyHardwareId) == 0) {
        return;
            continue;
        }
        configSingleFilterInDemuxTest(filterMap[live.ipFilterId], frontendMap[live.frontendId]);
    }
}

TEST_P(TunerFilterAidlTest, ReconfigFilterToReceiveStartId) {
    description("Recofigure and restart a filter to test start id.");
@@ -607,9 +655,14 @@ TEST_P(TunerFilterAidlTest, ReconfigFilterToReceiveStartId) {
        return;
    }
    // TODO use parameterized tests
    reconfigSingleFilterInDemuxTest(filterMap[live.videoFilterId], filterMap[live.videoFilterId],
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        reconfigSingleFilterInDemuxTest(filterMap[live.videoFilterId],
                                        filterMap[live.videoFilterId],
                                        frontendMap[live.frontendId]);
    }
}

TEST_P(TunerFilterAidlTest, SetFilterLinkage) {
    description("Pick up all the possible linkages from the demux caps and set them up.");
@@ -645,8 +698,12 @@ TEST_P(TunerFilterAidlTest, testTimeFilter) {
        return;
    }
    // TODO use parameterized tests
    auto timeFilter_configs = generateTimeFilterConfigurations();
    for (auto& configuration : timeFilter_configs) {
        timeFilter = configuration;
        testTimeFilter(timeFilterMap[timeFilter.timeFilterId]);
    }
}

static bool isEventProducingFilter(const FilterConfig& filterConfig) {
    switch (filterConfig.type.mainType) {
@@ -888,8 +945,12 @@ TEST_P(TunerRecordAidlTest, RecordDataFlowWithTsRecordFilterTest) {
    if (!record.support) {
        return;
    }
    auto record_configs = generateRecordConfigurations();
    for (auto& configuration : record_configs) {
        record = configuration;
        recordSingleFilterTest(filterMap[record.recordFilterId], frontendMap[record.frontendId],
                           dvrMap[record.dvrRecordId]);
                               dvrMap[record.dvrRecordId], Dataflow_Context::RECORD);
    }
}

TEST_P(TunerRecordAidlTest, AttachFiltersToRecordTest) {
@@ -898,8 +959,13 @@ TEST_P(TunerRecordAidlTest, AttachFiltersToRecordTest) {
    if (!record.support) {
        return;
    }
    auto record_configs = generateRecordConfigurations();
    for (auto& configuration : record_configs) {
        record = configuration;
        attachSingleFilterToRecordDvrTest(filterMap[record.recordFilterId],
                                      frontendMap[record.frontendId], dvrMap[record.dvrRecordId]);
                                          frontendMap[record.frontendId],
                                          dvrMap[record.dvrRecordId]);
    }
}

TEST_P(TunerRecordAidlTest, LnbRecordDataFlowWithTsRecordFilterTest) {
@@ -925,8 +991,12 @@ TEST_P(TunerFrontendAidlTest, TuneFrontend) {
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        mFrontendTests.tuneTest(frontendMap[live.frontendId]);
    }
}

TEST_P(TunerFrontendAidlTest, AutoScanFrontend) {
    description("Run an auto frontend scan with specific setting and check lock scanMessage");
@@ -957,8 +1027,12 @@ TEST_P(TunerFrontendAidlTest, TuneFrontendWithFrontendSettings) {
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        mFrontendTests.tuneTest(frontendMap[live.frontendId]);
    }
}

TEST_P(TunerFrontendAidlTest, BlindScanFrontendWithEndFrequency) {
    description("Run an blind frontend scan with setting and check lock scanMessage");
@@ -977,19 +1051,27 @@ TEST_P(TunerFrontendAidlTest, LinkToCiCam) {
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        if (!frontendMap[live.frontendId].canConnectToCiCam) {
        return;
            continue;
        }
        mFrontendTests.tuneTest(frontendMap[live.frontendId]);
    }
}

TEST_P(TunerFrontendAidlTest, getHardwareInfo) {
    description("Test Frontend get hardware info");
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        mFrontendTests.debugInfoTest(frontendMap[live.frontendId]);
    }
}

TEST_P(TunerFrontendAidlTest, maxNumberOfFrontends) {
    description("Test Max Frontend number");
@@ -1004,43 +1086,63 @@ TEST_P(TunerFrontendAidlTest, statusReadinessTest) {
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        mFrontendTests.statusReadinessTest(frontendMap[live.frontendId]);
    }
}

TEST_P(TunerBroadcastAidlTest, BroadcastDataFlowVideoFilterTest) {
    description("Test Video Filter functionality in Broadcast use case.");
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        broadcastSingleFilterTest(filterMap[live.videoFilterId], frontendMap[live.frontendId]);
    }
}

TEST_P(TunerBroadcastAidlTest, BroadcastDataFlowAudioFilterTest) {
    description("Test Audio Filter functionality in Broadcast use case.");
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        broadcastSingleFilterTest(filterMap[live.audioFilterId], frontendMap[live.frontendId]);
    }
}

TEST_P(TunerBroadcastAidlTest, BroadcastDataFlowSectionFilterTest) {
    description("Test Section Filter functionality in Broadcast use case.");
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        if (live.sectionFilterId.compare(emptyHardwareId) == 0) {
        return;
            continue;
        }
        broadcastSingleFilterTest(filterMap[live.sectionFilterId], frontendMap[live.frontendId]);
    }
}

TEST_P(TunerBroadcastAidlTest, IonBufferTest) {
    description("Test the av filter data bufferring.");
    if (!live.hasFrontendConnection) {
        return;
    }
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        broadcastSingleFilterTest(filterMap[live.videoFilterId], frontendMap[live.frontendId]);
    }
}

TEST_P(TunerBroadcastAidlTest, LnbBroadcastDataFlowVideoFilterTest) {
    description("Test Video Filter functionality in Broadcast with Lnb use case.");
@@ -1064,7 +1166,12 @@ TEST_P(TunerBroadcastAidlTest, MediaFilterWithSharedMemoryHandle) {
    if (!live.hasFrontendConnection) {
        return;
    }
    mediaFilterUsingSharedMemoryTest(filterMap[live.videoFilterId], frontendMap[live.frontendId]);
    auto live_configs = generateLiveConfigurations();
    for (auto& configuration : live_configs) {
        live = configuration;
        mediaFilterUsingSharedMemoryTest(filterMap[live.videoFilterId],
                                         frontendMap[live.frontendId]);
    }
}

TEST_P(TunerDescramblerAidlTest, CreateDescrambler) {
+10 −5
Original line number Diff line number Diff line
@@ -68,7 +68,10 @@ void clearIds() {
    lnbIds.clear();
    diseqcMsgs.clear();
    frontendIds.clear();
    ipFilterIds.clear();
    pcrFilterIds.clear();
    recordDvrIds.clear();
    timeFilterIds.clear();
    descramblerIds.clear();
    audioFilterIds.clear();
    videoFilterIds.clear();
@@ -77,6 +80,8 @@ void clearIds() {
    sectionFilterIds.clear();
}

enum class Dataflow_Context { LNBRECORD, RECORD };

class TunerLnbAidlTest : public testing::TestWithParam<std::string> {
  public:
    virtual void SetUp() override {
@@ -153,7 +158,7 @@ class TunerFilterAidlTest : public testing::TestWithParam<std::string> {
            mService = nullptr;
        }
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
        mDemuxTests.setService(mService);
@@ -264,7 +269,7 @@ class TunerRecordAidlTest : public testing::TestWithParam<std::string> {
            mService = nullptr;
        }
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
        mDemuxTests.setService(mService);
@@ -288,7 +293,7 @@ class TunerRecordAidlTest : public testing::TestWithParam<std::string> {
    void recordSingleFilterTestWithLnb(FilterConfig filterConf, FrontendConfig frontendConf,
                                       DvrConfig dvrConf, LnbConfig lnbConf);
    void recordSingleFilterTest(FilterConfig filterConf, FrontendConfig frontendConf,
                                DvrConfig dvrConf);
                                DvrConfig dvrConf, Dataflow_Context context);

    std::shared_ptr<ITuner> mService;
    FrontendTests mFrontendTests;
@@ -313,7 +318,7 @@ class TunerFrontendAidlTest : public testing::TestWithParam<std::string> {
            mService = nullptr;
        }
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
    }
@@ -344,7 +349,7 @@ class TunerBroadcastAidlTest : public testing::TestWithParam<std::string> {
            mService = nullptr;
        }
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
        mDemuxTests.setService(mService);
+188 −22

File changed.

Preview size limit exceeded, changes collapsed.

+8 −0
Original line number Diff line number Diff line
@@ -79,7 +79,10 @@ const string emptyHardwareId = "";
static string mConfigFilePath;

static vector<string> playbackDvrIds;
static vector<string> ipFilterIds;
static vector<string> recordDvrIds;
static vector<string> pcrFilterIds;
static vector<string> timeFilterIds;
static vector<string> audioFilterIds;
static vector<string> videoFilterIds;
static vector<string> recordFilterIds;
@@ -503,6 +506,7 @@ struct TunerTestingConfigAidlReader1_0 {
            auto timeFilters = *hardwareConfig.getFirstTimeFilters();
            for (auto timeFilterConfig : timeFilters.getTimeFilter()) {
                string id = timeFilterConfig.getId();
                timeFilterIds.push_back(id);
                timeFilterMap[id].timeStamp = static_cast<int64_t>(timeFilterConfig.getTimeStamp());
            }
        }
@@ -851,6 +855,10 @@ struct TunerTestingConfigAidlReader1_0 {
            recordFilterIds.push_back(filterConfig.getId());
        } else if (subType == FilterSubTypeEnum::SECTION) {
            sectionFilterIds.push_back(filterConfig.getId());
        } else if (subType == FilterSubTypeEnum::PCR) {
            pcrFilterIds.push_back(filterConfig.getId());
        } else if (subType == FilterSubTypeEnum::IP) {
            ipFilterIds.push_back(filterConfig.getId());
        }

        switch (mainType) {