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

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

Refactor Tuner 1.0 vts to use dynamic configuration

This CL starts the refatoring of Tuner 1.0 vts configuration file
to replace the previous manual config with the current dynamic config
using xml/xsd.

Note that this CL only connects the frontend setting section with
the dynamic config. The CLs to connect other hardware configs will come as
child CLs.

This CL also has some default implementation/vts test impl changes to
sync the sc-dev vts 1.0 with the aosp.

Child CL will also replace the 1.1 manual config with the dynamic
config.

Test: atest VtsHalTvTunerV1_0TargetTest
Bug: 182519645
CTS-Coverage-Bug: 184077478
Change-Id: I13e6ea3d91e474c10e4f822a6ce59d99cc7c7d1d
parent 9bef7ab4
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) {

    // IP filter can be an MMTP filter's data source.
    caps.linkCaps = {0x00, 0x00, 0x02, 0x00, 0x00};
    // Support time filter testing
    caps.bTimeFilter = true;
    _hidl_cb(Result::SUCCESS, caps);
    return Void();
}
+12 −0
Original line number Diff line number Diff line
@@ -35,6 +35,15 @@ cc_test {
        "DescramblerTests.cpp",
        "LnbTests.cpp",
    ],
    generated_headers: [
        "tuner_testing_dynamic_configuration_V1_0_enums",
        "tuner_testing_dynamic_configuration_V1_0_parser",
    ],
    generated_sources: [
        "tuner_testing_dynamic_configuration_V1_0_enums",
        "tuner_testing_dynamic_configuration_V1_0_parser",
    ],
    header_libs: ["libxsdc-utils"],
    static_libs: [
        "android.hardware.cas@1.0",
        "android.hardware.cas@1.1",
@@ -49,9 +58,12 @@ cc_test {
    ],
    shared_libs: [
        "libbinder",
        "libxml2",
    ],
    data: [
        ":tuner_frontend_input_ts",
        ":tuner_frontend_input_es",
        ":tuner_testing_dynamic_configuration_V1_0",
    ],
    test_suites: [
        "general-tests",
+1 −0
Original line number Diff line number Diff line
@@ -132,6 +132,7 @@ class FrontendTests {
    static AssertionResult failure() { return ::testing::AssertionFailure(); }
    static AssertionResult success() { return ::testing::AssertionSuccess(); }

    // TODO: replace with customized dvr input
    void getDefaultSoftwareFrontendPlaybackConfig(DvrConfig& dvrConfig) {
        PlaybackSettings playbackSettings{
                .statusMask = 0xf,
+60 −41
Original line number Diff line number Diff line
@@ -18,16 +18,15 @@

namespace {

AssertionResult TunerBroadcastHidlTest::filterDataOutputTest(vector<string> /*goldenOutputFiles*/) {
AssertionResult TunerBroadcastHidlTest::filterDataOutputTest() {
    return filterDataOutputTestBase(mFilterTests);
}

AssertionResult TunerPlaybackHidlTest::filterDataOutputTest(vector<string> /*goldenOutputFiles*/) {
AssertionResult TunerPlaybackHidlTest::filterDataOutputTest() {
    return filterDataOutputTestBase(mFilterTests);
}

AssertionResult TunerDescramblerHidlTest::filterDataOutputTest(
        vector<string> /*goldenOutputFiles*/) {
AssertionResult TunerDescramblerHidlTest::filterDataOutputTest() {
    return filterDataOutputTestBase(mFilterTests);
}

@@ -62,8 +61,14 @@ void TunerFilterHidlTest::testTimeFilter(TimeFilterConfig filterConf) {
    }
    uint32_t demuxId;
    sp<IDemux> demux;
    DemuxCapabilities caps;

    ASSERT_TRUE(mDemuxTests.openDemux(demux, demuxId));
    // TODO: add time filter hardware support checker
    ASSERT_TRUE(mDemuxTests.getDemuxCaps(caps));
    if (!caps.bTimeFilter) {
        return;
    }
    mFilterTests.setDemux(demux);
    ASSERT_TRUE(mFilterTests.openTimeFilterInDemux());
    ASSERT_TRUE(mFilterTests.setTimeStamp(filterConf.timeStamp));
@@ -75,9 +80,6 @@ void TunerFilterHidlTest::testTimeFilter(TimeFilterConfig filterConf) {

void TunerBroadcastHidlTest::broadcastSingleFilterTest(FilterConfig filterConf,
                                                       FrontendConfig frontendConf) {
    if (!frontendConf.enable) {
        return;
    }
    uint32_t feId;
    uint32_t demuxId;
    sp<IDemux> demux;
@@ -106,7 +108,7 @@ void TunerBroadcastHidlTest::broadcastSingleFilterTest(FilterConfig filterConf,
    ASSERT_TRUE(mFilterTests.startFilter(filterId));
    // tune test
    ASSERT_TRUE(mFrontendTests.tuneFrontend(frontendConf, true /*testWithDemux*/));
    ASSERT_TRUE(filterDataOutputTest(goldenOutputFiles));
    ASSERT_TRUE(filterDataOutputTest());
    ASSERT_TRUE(mFrontendTests.stopTuneFrontend(true /*testWithDemux*/));
    ASSERT_TRUE(mFilterTests.stopFilter(filterId));
    ASSERT_TRUE(mFilterTests.closeFilter(filterId));
@@ -119,12 +121,12 @@ void TunerBroadcastHidlTest::broadcastSingleFilterTestWithLnb(FilterConfig filte
                                                              LnbConfig lnbConf) {
    vector<uint32_t> ids;
    ASSERT_TRUE(mLnbTests.getLnbIds(ids));
    if (!lnbConf.usingLnb) {
    if (ids.size() == 0) {
        return;
    }
    ASSERT_TRUE(ids.size() > 0);
    ASSERT_TRUE(mLnbTests.openLnbById(ids[0]));
    *mLnbId = ids[0];
    mLnbId = &ids[0];
    ASSERT_TRUE(mLnbTests.setLnbCallback());
    ASSERT_TRUE(mLnbTests.setVoltage(lnbConf.voltage));
    ASSERT_TRUE(mLnbTests.setTone(lnbConf.tone));
@@ -152,7 +154,7 @@ void TunerPlaybackHidlTest::playbackSingleFilterTest(FilterConfig filterConf, Dv
    mDvrTests.startPlaybackInputThread(dvrConf.playbackInputFile, dvrConf.settings.playback());
    ASSERT_TRUE(mDvrTests.startDvrPlayback());
    ASSERT_TRUE(mFilterTests.startFilter(filterId));
    ASSERT_TRUE(filterDataOutputTest(goldenOutputFiles));
    ASSERT_TRUE(filterDataOutputTest());
    mDvrTests.stopPlaybackThread();
    ASSERT_TRUE(mFilterTests.stopFilter(filterId));
    ASSERT_TRUE(mDvrTests.stopDvrPlayback());
@@ -163,9 +165,6 @@ void TunerPlaybackHidlTest::playbackSingleFilterTest(FilterConfig filterConf, Dv

void TunerRecordHidlTest::recordSingleFilterTest(FilterConfig filterConf,
                                                 FrontendConfig frontendConf, DvrConfig dvrConf) {
    if (!frontendConf.enable) {
        return;
    }
    uint32_t feId;
    uint32_t demuxId;
    sp<IDemux> demux;
@@ -215,12 +214,12 @@ void TunerRecordHidlTest::recordSingleFilterTestWithLnb(FilterConfig filterConf,
                                                        DvrConfig dvrConf, LnbConfig lnbConf) {
    vector<uint32_t> ids;
    ASSERT_TRUE(mLnbTests.getLnbIds(ids));
    if (!lnbConf.usingLnb) {
    if (ids.size() == 0) {
        return;
    }
    ASSERT_TRUE(ids.size() > 0);
    ASSERT_TRUE(mLnbTests.openLnbById(ids[0]));
    *mLnbId = ids[0];
    mLnbId = &ids[0];
    ASSERT_TRUE(mLnbTests.setLnbCallback());
    ASSERT_TRUE(mLnbTests.setVoltage(lnbConf.voltage));
    ASSERT_TRUE(mLnbTests.setTone(lnbConf.tone));
@@ -271,9 +270,6 @@ void TunerRecordHidlTest::attachSingleFilterToRecordDvrTest(FilterConfig filterC
void TunerDescramblerHidlTest::scrambledBroadcastTest(set<struct FilterConfig> mediaFilterConfs,
                                                      FrontendConfig frontendConf,
                                                      DescramblerConfig descConfig) {
    if (!frontendConf.enable) {
        return;
    }
    uint32_t feId;
    uint32_t demuxId;
    sp<IDemux> demux;
@@ -319,7 +315,7 @@ void TunerDescramblerHidlTest::scrambledBroadcastTest(set<struct FilterConfig> m
    }
    // tune test
    ASSERT_TRUE(mFrontendTests.tuneFrontend(frontendConf, true /*testWithDemux*/));
    ASSERT_TRUE(filterDataOutputTest(goldenOutputFiles));
    ASSERT_TRUE(filterDataOutputTest());
    ASSERT_TRUE(mFrontendTests.stopTuneFrontend(true /*testWithDemux*/));
    for (id = filterIds.begin(); id != filterIds.end(); id++) {
        ASSERT_TRUE(mFilterTests.stopFilter(*id));
@@ -337,21 +333,27 @@ void TunerDescramblerHidlTest::scrambledBroadcastTest(set<struct FilterConfig> m

TEST_P(TunerFrontendHidlTest, TuneFrontend) {
    description("Tune one Frontend with specific setting and check Lock event");
    mFrontendTests.tuneTest(frontendArray[defaultFrontend]);
    mFrontendTests.tuneTest(frontendMap[live.frontendId]);
}

TEST_P(TunerFrontendHidlTest, AutoScanFrontend) {
    description("Run an auto frontend scan with specific setting and check lock scanMessage");
    mFrontendTests.scanTest(frontendScanArray[defaultScanFrontend], FrontendScanType::SCAN_AUTO);
    mFrontendTests.scanTest(frontendMap[scan.frontendId], FrontendScanType::SCAN_AUTO);
}

TEST_P(TunerFrontendHidlTest, BlindScanFrontend) {
    description("Run an blind frontend scan with specific setting and check lock scanMessage");
    mFrontendTests.scanTest(frontendScanArray[defaultScanFrontend], FrontendScanType::SCAN_BLIND);
    mFrontendTests.scanTest(frontendMap[scan.frontendId], FrontendScanType::SCAN_BLIND);
}

TEST_P(TunerLnbHidlTest, OpenLnbByName) {
    description("Open and configure an Lnb with name then send a diseqc msg to it.");
    // TODO: add lnb hardware support checker
    vector<uint32_t> ids;
    ASSERT_TRUE(mLnbTests.getLnbIds(ids));
    if (ids.size() == 0) {
        return;
    }
    ASSERT_TRUE(mLnbTests.openLnbByName(lnbArray[LNB_EXTERNAL].name));
    ASSERT_TRUE(mLnbTests.setLnbCallback());
    ASSERT_TRUE(mLnbTests.setVoltage(lnbArray[LNB_EXTERNAL].voltage));
@@ -365,7 +367,7 @@ TEST_P(TunerLnbHidlTest, SendDiseqcMessageToLnb) {
    description("Open and configure an Lnb with specific settings then send a diseqc msg to it.");
    vector<uint32_t> ids;
    ASSERT_TRUE(mLnbTests.getLnbIds(ids));
    if (!lnbArray[LNB0].usingLnb) {
    if (ids.size() == 0) {
        return;
    }
    ASSERT_TRUE(ids.size() > 0);
@@ -383,7 +385,7 @@ TEST_P(TunerDemuxHidlTest, openDemux) {
    uint32_t feId;
    uint32_t demuxId;
    sp<IDemux> demux;
    mFrontendTests.getFrontendIdByType(frontendArray[defaultFrontend].type, feId);
    mFrontendTests.getFrontendIdByType(frontendMap[live.frontendId].type, feId);
    ASSERT_TRUE(feId != INVALID_ID);
    ASSERT_TRUE(mFrontendTests.openFrontendById(feId));
    ASSERT_TRUE(mFrontendTests.setFrontendCallback());
@@ -403,7 +405,7 @@ TEST_P(TunerDemuxHidlTest, getAvSyncTime) {
    uint32_t avSyncHwId;
    sp<IFilter> mediaFilter;

    mFrontendTests.getFrontendIdByType(frontendArray[defaultFrontend].type, feId);
    mFrontendTests.getFrontendIdByType(frontendMap[live.frontendId].type, feId);
    ASSERT_TRUE(feId != INVALID_ID);
    ASSERT_TRUE(mFrontendTests.openFrontendById(feId));
    ASSERT_TRUE(mFrontendTests.setFrontendCallback());
@@ -431,7 +433,7 @@ TEST_P(TunerDemuxHidlTest, getAvSyncTime) {
TEST_P(TunerFilterHidlTest, StartFilterInDemux) {
    description("Open and start a filter in Demux.");
    // TODO use paramterized tests
    configSingleFilterInDemuxTest(filterArray[TS_VIDEO0], frontendArray[defaultFrontend]);
    configSingleFilterInDemuxTest(filterArray[TS_VIDEO0], frontendMap[live.frontendId]);
}

TEST_P(TunerFilterHidlTest, SetFilterLinkage) {
@@ -472,27 +474,27 @@ TEST_P(TunerFilterHidlTest, testTimeFilter) {

TEST_P(TunerBroadcastHidlTest, BroadcastDataFlowVideoFilterTest) {
    description("Test Video Filter functionality in Broadcast use case.");
    broadcastSingleFilterTest(filterArray[TS_VIDEO1], frontendArray[defaultFrontend]);
    broadcastSingleFilterTest(filterArray[TS_VIDEO1], frontendMap[live.frontendId]);
}

TEST_P(TunerBroadcastHidlTest, BroadcastDataFlowAudioFilterTest) {
    description("Test Audio Filter functionality in Broadcast use case.");
    broadcastSingleFilterTest(filterArray[TS_AUDIO0], frontendArray[defaultFrontend]);
    broadcastSingleFilterTest(filterArray[TS_AUDIO0], frontendMap[live.frontendId]);
}

TEST_P(TunerBroadcastHidlTest, BroadcastDataFlowSectionFilterTest) {
    description("Test Section Filter functionality in Broadcast use case.");
    broadcastSingleFilterTest(filterArray[TS_SECTION0], frontendArray[defaultFrontend]);
    broadcastSingleFilterTest(filterArray[TS_SECTION0], frontendMap[live.frontendId]);
}

TEST_P(TunerBroadcastHidlTest, IonBufferTest) {
    description("Test the av filter data bufferring.");
    broadcastSingleFilterTest(filterArray[TS_VIDEO0], frontendArray[defaultFrontend]);
    broadcastSingleFilterTest(filterArray[TS_VIDEO0], frontendMap[live.frontendId]);
}

TEST_P(TunerBroadcastHidlTest, LnbBroadcastDataFlowVideoFilterTest) {
    description("Test Video Filter functionality in Broadcast with Lnb use case.");
    broadcastSingleFilterTest(filterArray[TS_VIDEO0], frontendArray[DVBS]);
    broadcastSingleFilterTest(filterArray[TS_VIDEO0], frontendMap[live.frontendId]);
}

TEST_P(TunerBroadcastHidlTest, BroadcastEsDataFlowMediaFiltersTest) {
@@ -502,7 +504,7 @@ TEST_P(TunerBroadcastHidlTest, BroadcastEsDataFlowMediaFiltersTest) {
    sp<IDemux> demux;
    uint32_t filterId;

    mFrontendTests.getFrontendIdByType(frontendArray[defaultFrontend].type, feId);
    mFrontendTests.getFrontendIdByType(frontendMap[live.frontendId].type, feId);
    if (feId == INVALID_ID) {
        // TODO broadcast test on Cuttlefish needs licensed ts input,
        // these tests are runnable on vendor device with real frontend module
@@ -528,6 +530,7 @@ TEST_P(TunerBroadcastHidlTest, BroadcastEsDataFlowMediaFiltersTest) {
    ASSERT_TRUE(mFilterTests.getFilterMQDescriptor(filterId, filterArray[TS_VIDEO1].getMqDesc));
    ASSERT_TRUE(mFilterTests.startFilter(filterId));
    // tune test
    // TODO: replace with customized dvr input
    PlaybackSettings playbackSettings{
            .statusMask = 0xf,
            .lowThreshold = 0x1000,
@@ -542,9 +545,8 @@ TEST_P(TunerBroadcastHidlTest, BroadcastEsDataFlowMediaFiltersTest) {
    };
    dvrConfig.settings.playback(playbackSettings);
    mFrontendTests.setSoftwareFrontendDvrConfig(dvrConfig);
    ASSERT_TRUE(
            mFrontendTests.tuneFrontend(frontendArray[defaultFrontend], true /*testWithDemux*/));
    ASSERT_TRUE(filterDataOutputTest(goldenOutputFiles));
    ASSERT_TRUE(mFrontendTests.tuneFrontend(frontendMap[live.frontendId], true /*testWithDemux*/));
    ASSERT_TRUE(filterDataOutputTest());
    ASSERT_TRUE(mFrontendTests.stopTuneFrontend(true /*testWithDemux*/));
    ASSERT_TRUE(mFilterTests.stopFilter(filterId));
    ASSERT_TRUE(mFilterTests.closeFilter(filterId));
@@ -560,27 +562,40 @@ TEST_P(TunerPlaybackHidlTest, PlaybackDataFlowWithTsSectionFilterTest) {
TEST_P(TunerRecordHidlTest, AttachFiltersToRecordTest) {
    description("Attach a single filter to the record dvr test.");
    // TODO use paramterized tests
    attachSingleFilterToRecordDvrTest(filterArray[TS_RECORD0], frontendArray[defaultFrontend],
    if (!record.support) {
        return;
    }
    attachSingleFilterToRecordDvrTest(filterArray[TS_RECORD0], frontendMap[record.frontendId],
                                      dvrArray[DVR_RECORD0]);
}

TEST_P(TunerRecordHidlTest, RecordDataFlowWithTsRecordFilterTest) {
    description("Feed ts data from frontend to recording and test with ts record filter");
    recordSingleFilterTest(filterArray[TS_RECORD0], frontendArray[defaultFrontend],
    if (!record.support) {
        return;
    }
    recordSingleFilterTest(filterArray[TS_RECORD0], frontendMap[record.frontendId],
                           dvrArray[DVR_RECORD0]);
}

TEST_P(TunerRecordHidlTest, LnbRecordDataFlowWithTsRecordFilterTest) {
    description("Feed ts data from Fe with Lnb to recording and test with ts record filter");
    recordSingleFilterTest(filterArray[TS_RECORD0], frontendArray[DVBS], dvrArray[DVR_RECORD0]);
    if (record.support) {
        return;
    }
    recordSingleFilterTestWithLnb(filterArray[TS_RECORD0], frontendMap[lnbRecord.frontendId],
                                  dvrArray[DVR_RECORD0], lnbArray[LNB0]);
}

TEST_P(TunerDescramblerHidlTest, CreateDescrambler) {
    description("Create Descrambler");
    if (descrambling.support) {
        return;
    }
    uint32_t feId;
    uint32_t demuxId;
    sp<IDemux> demux;
    mFrontendTests.getFrontendIdByType(frontendArray[defaultFrontend].type, feId);
    mFrontendTests.getFrontendIdByType(frontendMap[descrambling.frontendId].type, feId);
    ASSERT_TRUE(feId != INVALID_ID);
    ASSERT_TRUE(mFrontendTests.openFrontendById(feId));
    ASSERT_TRUE(mFrontendTests.setFrontendCallback());
@@ -594,10 +609,14 @@ TEST_P(TunerDescramblerHidlTest, CreateDescrambler) {

TEST_P(TunerDescramblerHidlTest, ScrambledBroadcastDataFlowMediaFiltersTest) {
    description("Test ts audio filter in scrambled broadcast use case");
    if (descrambling.support) {
        return;
    }
    set<FilterConfig> filterConfs;
    filterConfs.insert(filterArray[TS_AUDIO0]);
    filterConfs.insert(filterArray[TS_VIDEO1]);
    scrambledBroadcastTest(filterConfs, frontendArray[defaultFrontend], descramblerArray[DESC_0]);
    scrambledBroadcastTest(filterConfs, frontendMap[descrambling.frontendId],
                           descramblerArray[DESC_0]);
}

INSTANTIATE_TEST_SUITE_P(
+23 −13
Original line number Diff line number Diff line
@@ -28,14 +28,24 @@ static AssertionResult success() {

namespace {

void initConfiguration() {
bool initConfiguration() {
    if (!TunerTestingConfigReader::checkConfigFileExists()) {
        return false;
    }
    initFrontendConfig();
    initFrontendScanConfig();
    connectHardwaresToTestCases();
    if (!validateConnections()) {
        ALOGW("[vts] failed to validate connections.");
        return false;
    }

    initLnbConfig();
    initFilterConfig();
    initTimeFilterConfig();
    initDvrConfig();
    initDescramblerConfig();

    return true;
}

AssertionResult filterDataOutputTestBase(FilterTests tests) {
@@ -53,7 +63,7 @@ class TunerFrontendHidlTest : public testing::TestWithParam<std::string> {
    virtual void SetUp() override {
        mService = ITuner::getService(GetParam());
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
    }
@@ -75,7 +85,7 @@ class TunerLnbHidlTest : public testing::TestWithParam<std::string> {
    virtual void SetUp() override {
        mService = ITuner::getService(GetParam());
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mLnbTests.setService(mService);
    }
@@ -97,7 +107,7 @@ class TunerDemuxHidlTest : public testing::TestWithParam<std::string> {
    virtual void SetUp() override {
        mService = ITuner::getService(GetParam());
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
        mDemuxTests.setService(mService);
@@ -123,7 +133,7 @@ class TunerFilterHidlTest : public testing::TestWithParam<std::string> {
    virtual void SetUp() override {
        mService = ITuner::getService(GetParam());
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
        mDemuxTests.setService(mService);
@@ -152,7 +162,7 @@ class TunerBroadcastHidlTest : public testing::TestWithParam<std::string> {
    virtual void SetUp() override {
        mService = ITuner::getService(GetParam());
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
        mDemuxTests.setService(mService);
@@ -173,7 +183,7 @@ class TunerBroadcastHidlTest : public testing::TestWithParam<std::string> {
    LnbTests mLnbTests;
    DvrTests mDvrTests;

    AssertionResult filterDataOutputTest(vector<string> goldenOutputFiles);
    AssertionResult filterDataOutputTest();

    void broadcastSingleFilterTest(FilterConfig filterConf, FrontendConfig frontendConf);
    void broadcastSingleFilterTestWithLnb(FilterConfig filterConf, FrontendConfig frontendConf,
@@ -191,7 +201,7 @@ class TunerPlaybackHidlTest : public testing::TestWithParam<std::string> {
    virtual void SetUp() override {
        mService = ITuner::getService(GetParam());
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
        mDemuxTests.setService(mService);
@@ -210,7 +220,7 @@ class TunerPlaybackHidlTest : public testing::TestWithParam<std::string> {
    FilterTests mFilterTests;
    DvrTests mDvrTests;

    AssertionResult filterDataOutputTest(vector<string> goldenOutputFiles);
    AssertionResult filterDataOutputTest();

    void playbackSingleFilterTest(FilterConfig filterConf, DvrConfig dvrConf);
};
@@ -223,7 +233,7 @@ class TunerRecordHidlTest : public testing::TestWithParam<std::string> {
    virtual void SetUp() override {
        mService = ITuner::getService(GetParam());
        ASSERT_NE(mService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
        mDemuxTests.setService(mService);
@@ -265,7 +275,7 @@ class TunerDescramblerHidlTest : public testing::TestWithParam<std::string> {
        mCasService = IMediaCasService::getService();
        ASSERT_NE(mService, nullptr);
        ASSERT_NE(mCasService, nullptr);
        initConfiguration();
        ASSERT_TRUE(initConfiguration());

        mFrontendTests.setService(mService);
        mDemuxTests.setService(mService);
@@ -281,7 +291,7 @@ class TunerDescramblerHidlTest : public testing::TestWithParam<std::string> {

    void scrambledBroadcastTest(set<struct FilterConfig> mediaFilterConfs,
                                FrontendConfig frontendConf, DescramblerConfig descConfig);
    AssertionResult filterDataOutputTest(vector<string> /*goldenOutputFiles*/);
    AssertionResult filterDataOutputTest();

    sp<ITuner> mService;
    sp<IMediaCasService> mCasService;
Loading