Handle logical camera devices properly - HighPriorityCameraClient test case is not executed against logical camera devices because clients are not allowed to change camera parameters via logical cameras. - CameraStreamExternalBuffering test case closes logical camera device explicitly, to avoid any influence on following test scenarios. Bug: 319165229 Test: atest VtsHalEvsTargetTest Change-Id: I734d701a2056ab84fe74179b083c3f6c5463447b Merged-In: I734d701a2056ab84fe74179b083c3f6c5463447b (cherry picked from commit 050b2ce1cf1bb01610b270deeb8908e5b3e2d8dc)
diff --git a/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp b/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp index 7551262..127a1c6 100644 --- a/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp +++ b/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp
@@ -1397,6 +1397,12 @@ // Test each reported camera for (auto&& cam : mCameraInfo) { + bool isLogicalCam = false; + if (getPhysicalCameraIds(cam.id, isLogicalCam); isLogicalCam) { + LOG(INFO) << "Skip a logical device, " << cam.id; + continue; + } + // Request available display IDs uint8_t targetDisplayId = 0; std::vector<uint8_t> displayIds; @@ -1977,6 +1983,13 @@ // Test each reported camera for (auto&& cam : mCameraInfo) { + bool isLogicalCam = false; + getPhysicalCameraIds(cam.id, isLogicalCam); + if (isLogicalCam) { + LOG(INFO) << "Skip a logical device, " << cam.id; + continue; + } + // Read a target resolution from the metadata Stream targetCfg = getFirstStreamConfiguration( reinterpret_cast<camera_metadata_t*>(cam.metadata.data())); @@ -2018,9 +2031,6 @@ } } - bool isLogicalCam = false; - getPhysicalCameraIds(cam.id, isLogicalCam); - std::shared_ptr<IEvsCamera> pCam; ASSERT_TRUE(mEnumerator->openCamera(cam.id, targetCfg, &pCam).isOk()); EXPECT_NE(pCam, nullptr); @@ -2031,11 +2041,6 @@ // Request to import buffers int delta = 0; auto status = pCam->importExternalBuffers(buffers, &delta); - if (isLogicalCam) { - ASSERT_FALSE(status.isOk()); - continue; - } - ASSERT_TRUE(status.isOk()); EXPECT_GE(delta, kBuffersToHold);