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

Commit 050b2ce1 authored by Changyeon Jo's avatar Changyeon Jo
Browse files

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
parent 1f330d6c
Loading
Loading
Loading
Loading
+13 −8
Original line number Original line Diff line number Diff line
@@ -1399,6 +1399,12 @@ TEST_P(EvsAidlTest, HighPriorityCameraClient) {


    // Test each reported camera
    // Test each reported camera
    for (auto&& cam : mCameraInfo) {
    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
        // Request available display IDs
        uint8_t targetDisplayId = 0;
        uint8_t targetDisplayId = 0;
        std::vector<uint8_t> displayIds;
        std::vector<uint8_t> displayIds;
@@ -1973,6 +1979,13 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) {


    // Test each reported camera
    // Test each reported camera
    for (auto&& cam : mCameraInfo) {
    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
        // Read a target resolution from the metadata
        Stream targetCfg = getFirstStreamConfiguration(
        Stream targetCfg = getFirstStreamConfiguration(
                reinterpret_cast<camera_metadata_t*>(cam.metadata.data()));
                reinterpret_cast<camera_metadata_t*>(cam.metadata.data()));
@@ -2014,9 +2027,6 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) {
            }
            }
        }
        }


        bool isLogicalCam = false;
        getPhysicalCameraIds(cam.id, isLogicalCam);

        std::shared_ptr<IEvsCamera> pCam;
        std::shared_ptr<IEvsCamera> pCam;
        ASSERT_TRUE(mEnumerator->openCamera(cam.id, targetCfg, &pCam).isOk());
        ASSERT_TRUE(mEnumerator->openCamera(cam.id, targetCfg, &pCam).isOk());
        EXPECT_NE(pCam, nullptr);
        EXPECT_NE(pCam, nullptr);
@@ -2027,11 +2037,6 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) {
        // Request to import buffers
        // Request to import buffers
        int delta = 0;
        int delta = 0;
        auto status = pCam->importExternalBuffers(buffers, &delta);
        auto status = pCam->importExternalBuffers(buffers, &delta);
        if (isLogicalCam) {
            ASSERT_FALSE(status.isOk());
            continue;
        }

        ASSERT_TRUE(status.isOk());
        ASSERT_TRUE(status.isOk());
        EXPECT_GE(delta, kBuffersToHold);
        EXPECT_GE(delta, kBuffersToHold);