Merge "Fix fail on RadioConfigTest#checkPortInfoExistsAndPortActive for dual-SIM detection" into android13-tests-dev
diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp
index 137c521..ef3ce4f 100644
--- a/camera/provider/aidl/vts/camera_aidl_test.cpp
+++ b/camera/provider/aidl/vts/camera_aidl_test.cpp
@@ -148,7 +148,7 @@
         const native_handle_t* releaseFenceHandle = bufferAndTimestamp.buffer.releaseFence;
         if (releaseFenceHandle != nullptr && releaseFenceHandle->numFds == 1 &&
             releaseFenceHandle->data[0] >= 0) {
-            releaseFence = new android::Fence(releaseFenceHandle->data[0]);
+            releaseFence = new android::Fence(dup(releaseFenceHandle->data[0]));
         }
         if (releaseFence && releaseFence->isValid()) {
             releaseFence->wait(/*ms*/ 300);
diff --git a/camera/provider/aidl/vts/camera_aidl_test.h b/camera/provider/aidl/vts/camera_aidl_test.h
index 9fa84d3..f1de68f 100644
--- a/camera/provider/aidl/vts/camera_aidl_test.h
+++ b/camera/provider/aidl/vts/camera_aidl_test.h
@@ -478,6 +478,20 @@
               hasInputBuffer(hasInput),
               collectedResult(1, 10),
               expectedPhysicalResults(extraPhysicalResult) {}
+
+        ~InFlightRequest() {
+            for (auto& buffer : resultOutputBuffers) {
+                native_handle_t* acquireFenceHandle = const_cast<native_handle_t*>(
+                        buffer.buffer.acquireFence);
+                native_handle_close(acquireFenceHandle);
+                native_handle_delete(acquireFenceHandle);
+
+                native_handle_t* releaseFenceHandle = const_cast<native_handle_t*>(
+                        buffer.buffer.releaseFence);
+                native_handle_close(releaseFenceHandle);
+                native_handle_delete(releaseFenceHandle);
+            }
+        }
     };
 
     static bool matchDeviceName(const std::string& deviceName, const std::string& providerType,
diff --git a/camera/provider/aidl/vts/device_cb.cpp b/camera/provider/aidl/vts/device_cb.cpp
index ca2f904..7e0969a 100644
--- a/camera/provider/aidl/vts/device_cb.cpp
+++ b/camera/provider/aidl/vts/device_cb.cpp
@@ -428,8 +428,8 @@
                                            bufferId,
                                            outputBuffer,
                                            buffer.status,
-                                           ::android::makeFromAidl(buffer.acquireFence),
-                                           ::android::makeFromAidl(buffer.releaseFence)};
+                                           ::android::dupFromAidl(buffer.acquireFence),
+                                           ::android::dupFromAidl(buffer.releaseFence)};
         streamBufferAndTimestamp.timeStamp = systemTime();
         request->resultOutputBuffers.push_back(streamBufferAndTimestamp);
     }
diff --git a/tv/cec/1.0/vts/functional/VtsHalTvCecV1_0TargetTest.cpp b/tv/cec/1.0/vts/functional/VtsHalTvCecV1_0TargetTest.cpp
index 7b42689..75c44b7 100644
--- a/tv/cec/1.0/vts/functional/VtsHalTvCecV1_0TargetTest.cpp
+++ b/tv/cec/1.0/vts/functional/VtsHalTvCecV1_0TargetTest.cpp
@@ -127,7 +127,15 @@
 
 TEST_P(HdmiCecTest, SendMessage) {
     CecMessage message;
-    message.initiator = CecLogicalAddress::PLAYBACK_1;
+    if (hasDeviceType(CecDeviceType::TV))
+    {
+        hdmiCec->clearLogicalAddress();
+        Return<Result> result = hdmiCec->addLogicalAddress(CecLogicalAddress::TV);
+        EXPECT_EQ(result, Result::SUCCESS);
+        message.initiator = CecLogicalAddress::TV;
+    }
+    else
+        message.initiator = CecLogicalAddress::PLAYBACK_1;
     message.destination = CecLogicalAddress::BROADCAST;
     message.body.resize(1);
     message.body[0] = 131;
diff --git a/tv/cec/OWNERS b/tv/cec/OWNERS
new file mode 100644
index 0000000..71e74c0
--- /dev/null
+++ b/tv/cec/OWNERS
@@ -0,0 +1,2 @@
+# Bug component: 826094
+include platform/frameworks/base:/core/java/android/hardware/hdmi/OWNERS