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

This commit is contained in:
Amy Zhang
2021-02-22 21:02:52 +00:00
committed by Android (Google) Code Review
5 changed files with 48 additions and 0 deletions

View File

@@ -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);
}

View File

@@ -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*/));

View File

@@ -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);

View File

@@ -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)),

View File

@@ -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,