VTS: Cast camera device to lower versions

If the camera device is of a certain version, it can be casted to all lower version
numbers.

Test: VtsHalCameraProviderV2_4TargetTest
Bug: 187010354
Change-Id: Ib9515d898948fb2e04d20b0087d98334fa71def0
This commit is contained in:
Shuzhen Wang
2021-05-05 22:27:54 -07:00
parent b7d7e97f49
commit af88452fa9

View File

@@ -7155,17 +7155,24 @@ void CameraHidlTest::castDevice(const sp<device::V3_2::ICameraDevice>& device,
sp<device::V3_5::ICameraDevice>* device3_5 /*out*/,
sp<device::V3_7::ICameraDevice>* device3_7 /*out*/) {
ASSERT_NE(nullptr, device3_5);
if (deviceVersion == CAMERA_DEVICE_API_VERSION_3_5) {
auto castResult = device::V3_5::ICameraDevice::castFrom(device);
ASSERT_TRUE(castResult.isOk());
*device3_5 = castResult;
}
ASSERT_NE(nullptr, device3_7);
if (deviceVersion == CAMERA_DEVICE_API_VERSION_3_7) {
auto castResult = device::V3_7::ICameraDevice::castFrom(device);
ASSERT_TRUE(castResult.isOk());
*device3_7 = castResult;
switch (deviceVersion) {
case CAMERA_DEVICE_API_VERSION_3_7: {
auto castResult = device::V3_7::ICameraDevice::castFrom(device);
ASSERT_TRUE(castResult.isOk());
*device3_7 = castResult;
}
[[fallthrough]];
case CAMERA_DEVICE_API_VERSION_3_5: {
auto castResult = device::V3_5::ICameraDevice::castFrom(device);
ASSERT_TRUE(castResult.isOk());
*device3_5 = castResult;
break;
}
default:
// no-op
return;
}
}