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

Commit 0c069537 authored by Frankie Lizcano's avatar Frankie Lizcano
Browse files

Improve Tuner VTS: Generate TimeFilter Combinations

This CL allows the VTS to read a vendor's configuration file, determine
if the given devices could support the TimeFilter dataflow, and generate
all combinations of units to run them on corresponding integration tests.
Additionally, the configuration file is checked to see if the vendors
provide the dataflow themselves. If not, the combinations are created.

Bug: b/182519645

Test: vts-tradefed run vts --module VtsHalTvTunerTargetTest. Manual
tests with different input configuration files.

Change-Id: Icdbf8961e9dc06fd979be953027409a0a197cba4
parent 14aa8484
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -645,8 +645,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) {
+1 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ void clearIds() {
    diseqcMsgs.clear();
    frontendIds.clear();
    recordDvrIds.clear();
    timeFilterIds.clear();
    descramblerIds.clear();
    audioFilterIds.clear();
    videoFilterIds.clear();
+27 −0
Original line number Diff line number Diff line
@@ -380,6 +380,33 @@ static inline vector<DescramblingHardwareConnections> generateDescramblingConfig
    return descrambling_configs;
}

static inline vector<TimeFilterHardwareConnections> generateTimeFilterCombinations() {
    vector<TimeFilterHardwareConnections> combinations;

    for (auto& id : timeFilterIds) {
        TimeFilterHardwareConnections mTimeFilter;
        mTimeFilter.timeFilterId = id;
        combinations.push_back(mTimeFilter);
    }

    return combinations;
}

static inline vector<TimeFilterHardwareConnections> generateTimeFilterConfigurations() {
    vector<TimeFilterHardwareConnections> timeFilter_configs;
    if (configuredTimeFilter) {
        ALOGD("Using TimeFilter configuration provided.");
        timeFilter_configs = {timeFilter};
    } else {
        ALOGD("TimeFilter not provided. Generating possible combinations. Consider adding it to "
              "the "
              "configuration file.");
        timeFilter_configs = generateTimeFilterCombinations();
    }

    return timeFilter_configs;
}

/** Config all the frontends that would be used in the tests */
inline void initFrontendConfig() {
    // The test will use the internal default fe when default fe is connected to any data flow
+2 −0
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ static string mConfigFilePath;

static vector<string> playbackDvrIds;
static vector<string> recordDvrIds;
static vector<string> timeFilterIds;
static vector<string> audioFilterIds;
static vector<string> videoFilterIds;
static vector<string> recordFilterIds;
@@ -503,6 +504,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());
            }
        }