mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Merge "Add VTS to test link/unlinkCicam in IFrontend" into sc-dev
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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*/));
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)),
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user