diff --git a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp index 86c2c1e15c..a5369e7b8d 100644 --- a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp +++ b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp @@ -607,7 +607,9 @@ public: struct DeviceCb : public V3_5::ICameraDeviceCallback { DeviceCb(CameraHidlTest *parent, int deviceVersion, const camera_metadata_t *staticMeta) : - mParent(parent), mDeviceVersion(deviceVersion), mStaticMetadata(staticMeta) {} + mParent(parent), mDeviceVersion(deviceVersion) { + mStaticMetadata = staticMeta; + } Return processCaptureResult_3_4( const hidl_vec& results) override; @@ -631,7 +633,7 @@ public: CameraHidlTest *mParent; // Parent object int mDeviceVersion; - const camera_metadata_t *mStaticMetadata; + android::hardware::camera::common::V1_0::helper::CameraMetadata mStaticMetadata; bool hasOutstandingBuffersLocked(); /* members for requestStreamBuffers() and returnStreamBuffers()*/ @@ -1194,18 +1196,20 @@ bool CameraHidlTest::DeviceCb::processCaptureResultLocked(const CaptureResult& r // Verify final result metadata bool isAtLeast_3_5 = mDeviceVersion >= CAMERA_DEVICE_API_VERSION_3_5; if (isAtLeast_3_5) { + auto staticMetadataBuffer = mStaticMetadata.getAndLock(); bool isMonochrome = Status::OK == - CameraHidlTest::isMonochromeCamera(mStaticMetadata); + CameraHidlTest::isMonochromeCamera(staticMetadataBuffer); if (isMonochrome) { mParent->verifyMonochromeCameraResult(request->collectedResult); } // Verify logical camera result metadata bool isLogicalCamera = - Status::OK == CameraHidlTest::isLogicalMultiCamera(mStaticMetadata); + Status::OK == CameraHidlTest::isLogicalMultiCamera(staticMetadataBuffer); if (isLogicalCamera) { - mParent->verifyLogicalCameraResult(mStaticMetadata, request->collectedResult); + mParent->verifyLogicalCameraResult(staticMetadataBuffer, request->collectedResult); } + mStaticMetadata.unlock(staticMetadataBuffer); } } @@ -4131,6 +4135,8 @@ TEST_F(CameraHidlTest, processMultiCaptureRequestPreview) { &useHalBufManager /*out*/, &cb /*out*/, 0 /*streamConfigCounter*/, true /*allowUnsupport*/); if (session3_5 == nullptr) { + ret = session3_4->close(); + ASSERT_TRUE(ret.isOk()); continue; } @@ -5402,7 +5408,7 @@ void CameraHidlTest::configurePreviewStream(const std::string &name, int32_t dev ASSERT_EQ(Status::OK, s); staticMeta = clone_camera_metadata( reinterpret_cast(metadata.data())); - ASSERT_NE(nullptr, staticMeta); + ASSERT_NE(nullptr, staticMeta); }); ASSERT_TRUE(ret.isOk()); diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml index 2284723f0a..6e1bc8fa78 100644 --- a/compatibility_matrices/compatibility_matrix.current.xml +++ b/compatibility_matrices/compatibility_matrix.current.xml @@ -365,7 +365,10 @@ android.hardware.radio.config - 1.2 + + 1.1 IRadioConfig default diff --git a/sensors/2.0/vts/functional/VtsHalSensorsV2_0TargetTest.cpp b/sensors/2.0/vts/functional/VtsHalSensorsV2_0TargetTest.cpp index 39053fe75f..62c5334441 100644 --- a/sensors/2.0/vts/functional/VtsHalSensorsV2_0TargetTest.cpp +++ b/sensors/2.0/vts/functional/VtsHalSensorsV2_0TargetTest.cpp @@ -683,11 +683,16 @@ void SensorsHidlTest::runFlushTest(const std::vector& sensors, bool Result flushResult = flush(sensor.sensorHandle); ASSERT_EQ(flushResult, expectedResponse); } - activate(sensor.sensorHandle, false); } // Wait up to one second for the flush events callback.waitForFlushEvents(sensors, flushCalls, 1000 /* timeoutMs */); + + // Deactivate all sensors after waiting for flush events so pending flush events are not + // abandoned by the HAL. + for (const SensorInfo& sensor : sensors) { + activate(sensor.sensorHandle, false); + } getEnvironment()->unregisterCallback(); // Check that the correct number of flushes are present for each sensor