Fix test failures for realtime capture latency API
- requires the presence of the realtime capture latency api in the vendor extension impl
- only run the test if the extension version is at least 1.4 which implies that the realtime capture latency api is present
Test: AdvancedSessionProcessorTest and BasicExtenderSessionProcessorTest on device with existing vendor extensions present
Bug: 290729304
Change-Id: Ib8b9d98c8ad1b3cc51237de3b76282a5ddaadfbd
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/AdvancedSessionProcessorTest.kt b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/AdvancedSessionProcessorTest.kt
index 0b356f1..bd31f81 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/AdvancedSessionProcessorTest.kt
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/AdvancedSessionProcessorTest.kt
@@ -230,7 +230,7 @@
@Test
fun getRealtimeLatencyEstimate_advancedSessionProcessorInvokesSessionProcessorImpl() =
runBlocking {
- ExtensionVersion.injectInstance(FakeExtensionVersion(Version.VERSION_1_4))
+ assumeTrue(ExtensionVersion.isMinimumCompatibleVersion(Version.VERSION_1_4))
ClientVersion.setCurrentVersion(ClientVersion("1.4.0"))
val fakeSessionProcessImpl = object : SessionProcessorImpl by FakeSessionProcessImpl() {
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/FakeExtensionVersion.kt b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/FakeExtensionVersion.kt
deleted file mode 100644
index e0bce46..0000000
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/FakeExtensionVersion.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.camera.extensions.internal
-
-import androidx.test.filters.SdkSuppress
-
-/**
- * A fake extension version with a settable version string used for testing
- */
-@SdkSuppress(minSdkVersion = 23) // BasicVendorExtender requires API level 23
-class FakeExtensionVersion(
- private val version: Version = Version.VERSION_1_3,
- private val isAdvancedExtenderSupported: Boolean = true
-) : ExtensionVersion() {
- override fun isAdvancedExtenderSupportedInternal(): Boolean = isAdvancedExtenderSupported
-
- override fun getVersionObject(): Version = version
-}
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessorTest.kt b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessorTest.kt
index de57389..c494bd2 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessorTest.kt
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/internal/sessionprocessor/BasicExtenderSessionProcessorTest.kt
@@ -70,7 +70,6 @@
import androidx.camera.extensions.impl.RequestUpdateProcessorImpl
import androidx.camera.extensions.internal.ClientVersion
import androidx.camera.extensions.internal.ExtensionVersion
-import androidx.camera.extensions.internal.FakeExtensionVersion
import androidx.camera.extensions.internal.Version
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.camera.testing.CameraUtil
@@ -345,7 +344,7 @@
@Test
fun getRealtimeCaptureLatencyEstimate_invokesCaptureExtenderImpl(): Unit = runBlocking {
assumeTrue(hasCaptureProcessor)
- ExtensionVersion.injectInstance(FakeExtensionVersion(Version.VERSION_1_4))
+ assumeTrue(ExtensionVersion.isMinimumCompatibleVersion(Version.VERSION_1_4))
ClientVersion.setCurrentVersion(ClientVersion("1.4.0"))
fakeCaptureExtenderImpl = object : FakeImageCaptureExtenderImpl(hasCaptureProcessor) {
override fun getRealtimeCaptureLatency(): Pair<Long, Long> = Pair(1000L, 10L)