Merge "Shutdown CameraX after each corestestapp test" into androidx-main
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ExistingActivityLifecycleTest.kt b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ExistingActivityLifecycleTest.kt
index 382ec89..79ad758 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ExistingActivityLifecycleTest.kt
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ExistingActivityLifecycleTest.kt
@@ -18,6 +18,7 @@
import android.Manifest
import android.app.Instrumentation
import androidx.camera.core.CameraSelector
+import androidx.camera.core.CameraX
import androidx.camera.testing.CameraUtil
import androidx.camera.testing.CoreAppTestUtil
import androidx.lifecycle.Lifecycle.State.CREATED
@@ -35,12 +36,14 @@
import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking
import org.junit.After
+import org.junit.AfterClass
import org.junit.Assume
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.rules.TestRule
import org.junit.runner.RunWith
+import java.util.concurrent.TimeUnit
private const val HOME_TIMEOUT_MS = 3000L
private const val ROTATE_TIMEOUT_MS = 2000L
@@ -62,6 +65,14 @@
Manifest.permission.RECORD_AUDIO
)
+ companion object {
+ @AfterClass
+ @JvmStatic
+ fun shutdownCameraX() {
+ CameraX.shutdown().get(10, TimeUnit.SECONDS)
+ }
+ }
+
@Before
fun setup() {
Assume.assumeTrue(CameraUtil.deviceHasCamera())
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/InitializationTest.kt b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/InitializationTest.kt
index 5887576..42dce52 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/InitializationTest.kt
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/InitializationTest.kt
@@ -17,6 +17,7 @@
package androidx.camera.integration.core
import android.content.Context
+import androidx.camera.core.CameraX
import androidx.camera.testing.CameraUtil
import androidx.camera.testing.CoreAppTestUtil
import androidx.concurrent.futures.await
@@ -32,6 +33,7 @@
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.runBlocking
import org.junit.After
+import org.junit.AfterClass
import org.junit.Assume
import org.junit.Before
import org.junit.Rule
@@ -39,6 +41,7 @@
import org.junit.rules.TestRule
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
+import java.util.concurrent.TimeUnit
@LargeTest
@RunWith(Parameterized::class)
@@ -70,6 +73,12 @@
TestConfig(orientation)
}
}
+
+ @AfterClass
+ @JvmStatic
+ fun shutdownCameraX() {
+ CameraX.shutdown().get(10, TimeUnit.SECONDS)
+ }
}
private var providerResult: CameraXViewModel.CameraProviderResult? = null
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/NewActivityLifecycleTest.java b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/NewActivityLifecycleTest.java
index 050cd6f..b1b8a1b 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/NewActivityLifecycleTest.java
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/NewActivityLifecycleTest.java
@@ -26,6 +26,7 @@
import android.content.Context;
import android.content.Intent;
+import androidx.camera.core.CameraX;
import androidx.camera.testing.CameraUtil;
import androidx.camera.testing.CoreAppTestUtil;
import androidx.test.core.app.ApplicationProvider;
@@ -38,12 +39,17 @@
import androidx.test.uiautomator.UiDevice;
import org.junit.After;
+import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
// Test new activity lifecycle when using CameraX.
@RunWith(AndroidJUnit4.class)
@LargeTest
@@ -96,6 +102,12 @@
pressHomeButton();
}
+ @AfterClass
+ public static void shutdownCameraX()
+ throws InterruptedException, ExecutionException, TimeoutException {
+ CameraX.shutdown().get(10, TimeUnit.SECONDS);
+ }
+
@Test
public void checkPreviewUpdatedWithNewInstance() {
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/TakePictureTest.kt b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/TakePictureTest.kt
index 71cdc95..1c1704e 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/TakePictureTest.kt
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/TakePictureTest.kt
@@ -17,6 +17,7 @@
package androidx.camera.integration.core
import android.Manifest
+import androidx.camera.core.CameraX
import androidx.camera.testing.CameraUtil
import androidx.camera.testing.CoreAppTestUtil
import androidx.test.core.app.ActivityScenario
@@ -27,12 +28,14 @@
import androidx.test.filters.LargeTest
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
+import org.junit.AfterClass
import org.junit.Assume.assumeTrue
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.rules.TestRule
import org.junit.runner.RunWith
+import java.util.concurrent.TimeUnit
@LargeTest
@RunWith(AndroidJUnit4::class)
@@ -47,6 +50,14 @@
Manifest.permission.RECORD_AUDIO
)
+ companion object {
+ @AfterClass
+ @JvmStatic
+ fun tearDown() {
+ CameraX.shutdown().get(10, TimeUnit.SECONDS)
+ }
+ }
+
@Before
fun setUp() {
assumeTrue(CameraUtil.deviceHasCamera())
diff --git a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ToggleButtonUITest.java b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ToggleButtonUITest.java
index 2551bb3..70eccd1 100644
--- a/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ToggleButtonUITest.java
+++ b/camera/integration-tests/coretestapp/src/androidTest/java/androidx/camera/integration/core/ToggleButtonUITest.java
@@ -34,6 +34,7 @@
import androidx.camera.core.CameraInfo;
import androidx.camera.core.CameraSelector;
+import androidx.camera.core.CameraX;
import androidx.camera.core.ImageCapture;
import androidx.camera.core.TorchState;
import androidx.camera.integration.core.idlingresource.ElapsedTimeIdlingResource;
@@ -54,12 +55,17 @@
import junit.framework.AssertionFailedError;
import org.junit.After;
+import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
/** Test toggle buttons in CoreTestApp. */
@RunWith(AndroidJUnit4.class)
@LargeTest
@@ -118,6 +124,12 @@
mDevice.waitForIdle(IDLE_TIMEOUT_MS);
}
+ @AfterClass
+ public static void shutdownCameraX()
+ throws InterruptedException, ExecutionException, TimeoutException {
+ CameraX.shutdown().get(10, TimeUnit.SECONDS);
+ }
+
@Test
public void testFlashToggleButton() {
waitFor(new WaitForViewToShow(R.id.constraintLayout));