Create Launcher3RoboTests and enable Robolectric on small set of tests
Test: atest Launcher3RoboTests
Bug: 316551909
Flag: NA
Change-Id: Ib1bbaf49e3e608f8c67005c129e090711df1e99c
diff --git a/tests/Android.bp b/tests/Android.bp
index bdb53ba..dd0ba9e 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -174,3 +174,77 @@
sdk_version: "current",
min_sdk_version: min_launcher3_sdk_version,
}
+
+filegroup {
+ name: "launcher-testing-helpers",
+ srcs: [
+ "src/**/*.java",
+ "src/**/*.kt",
+ "src/com/android/launcher3/ui/AbstractLauncherUiTest.java",
+ "tapl/com/android/launcher3/tapl/*.java",
+ "tapl/com/android/launcher3/tapl/*.kt",
+ ],
+ exclude_srcs: [
+ // Test classes
+ "src/**/*Test.java",
+ "src/**/*Test.kt",
+ ],
+}
+
+android_library {
+ name: "Launcher3Lib",
+ srcs: [
+ ":launcher-src",
+ ":launcher-src_shortcuts_overrides",
+ ":launcher-src_ui_overrides",
+ ],
+ static_libs: [
+ "Launcher3CommonDepsLib",
+ ],
+}
+
+android_robolectric_test {
+ enabled: true,
+ name: "Launcher3RoboTests",
+ srcs: [
+ "src/com/android/launcher3/util/*.java",
+ "src/com/android/launcher3/util/*.kt",
+
+ // Test util classes
+ ":launcher-testing-helpers",
+ ":launcher-testing-shared",
+ ],
+ exclude_srcs: [
+ "src/com/android/launcher3/util/CellContentDimensionsTest.kt", // Failing - b/316553889
+
+ // requires modification to work with inline mock maker
+ "src/com/android/launcher3/util/rule/StaticMockitoRule.java",
+
+ // requires kotlin mockito
+ "src/com/android/launcher3/util/LockedUserStateTest.kt",
+ "src/com/android/launcher3/util/DisplayControllerTest.kt",
+ ],
+ java_resource_dirs: ["config"],
+ static_libs: [
+ "flag-junit-base",
+ "com_android_launcher3_flags_lib",
+ "com_android_wm_shell_flags_lib",
+ "androidx.test.uiautomator_uiautomator",
+ "androidx.core_core-animation-testing",
+ "androidx.test.ext.junit",
+ "inline-mockito-robolectric-prebuilt",
+ "platform-parametric-runner-lib",
+ "testables",
+ "Launcher3TestResources",
+ "SystemUISharedLib",
+ "launcher-testing-shared",
+ ],
+ libs: [
+ "android.test.runner",
+ "android.test.base",
+ "android.test.mock",
+ "truth",
+ ],
+ instrumentation_for: "Launcher3",
+ upstream: true,
+}
diff --git a/tests/config/robolectric.properties b/tests/config/robolectric.properties
new file mode 100644
index 0000000..fab7251
--- /dev/null
+++ b/tests/config/robolectric.properties
@@ -0,0 +1 @@
+sdk=NEWEST_SDK
diff --git a/tests/src/com/android/launcher3/util/ExecutorRunnableTest.kt b/tests/src/com/android/launcher3/util/ExecutorRunnableTest.kt
index c9d118f..6d00253 100644
--- a/tests/src/com/android/launcher3/util/ExecutorRunnableTest.kt
+++ b/tests/src/com/android/launcher3/util/ExecutorRunnableTest.kt
@@ -16,7 +16,7 @@
package com.android.launcher3.util
-import android.testing.AndroidTestingRunner
+import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.launcher3.util.rule.TestStabilityRule
import java.util.concurrent.ExecutorService
@@ -30,7 +30,7 @@
/** Unit test for [ExecutorRunnable] */
@SmallTest
-@RunWith(AndroidTestingRunner::class)
+@RunWith(AndroidJUnit4::class)
class ExecutorRunnableTest {
private lateinit var underTest: ExecutorRunnable<Int>
diff --git a/tests/src/com/android/launcher3/util/rule/TestStabilityRule.java b/tests/src/com/android/launcher3/util/rule/TestStabilityRule.java
index b51045f..909aabd 100644
--- a/tests/src/com/android/launcher3/util/rule/TestStabilityRule.java
+++ b/tests/src/com/android/launcher3/util/rule/TestStabilityRule.java
@@ -83,6 +83,7 @@
public static int getRunFlavor() {
if (sRunFlavor != 0) return sRunFlavor;
+ if (isRobolectricTest()) return PLATFORM_POSTSUBMIT;
final String flavorOverride = InstrumentationRegistry.getArguments().getString("flavor");
@@ -150,4 +151,8 @@
public static boolean isPresubmit() {
return getRunFlavor() == PLATFORM_PRESUBMIT;
}
+
+ public static boolean isRobolectricTest() {
+ return Build.FINGERPRINT.contains("robolectric");
+ }
}