From 861f2fdc810e0e9a8c4bf397d0adfaf5e8785360 Mon Sep 17 00:00:00 2001 From: Uwais Ashraf Date: Tue, 19 Dec 2023 10:09:25 +0000 Subject: [PATCH] Create Launcher3RoboTests and enable Robolectric on small set of tests Test: atest Launcher3RoboTests Bug: 316551909 Flag: NA Change-Id: Ib1bbaf49e3e608f8c67005c129e090711df1e99c --- tests/Android.bp | 74 +++++++++++++++++++ tests/config/robolectric.properties | 1 + .../launcher3/util/ExecutorRunnableTest.kt | 4 +- .../util/rule/TestStabilityRule.java | 5 ++ 4 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 tests/config/robolectric.properties diff --git a/tests/Android.bp b/tests/Android.bp index bdb53bab25..dd0ba9e076 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -174,3 +174,77 @@ android_library { 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 0000000000..fab7251d02 --- /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 c9d118f637..6d00253833 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 @@ import org.junit.runner.RunWith /** Unit test for [ExecutorRunnable] */ @SmallTest -@RunWith(AndroidTestingRunner::class) +@RunWith(AndroidJUnit4::class) class ExecutorRunnableTest { private lateinit var underTest: ExecutorRunnable diff --git a/tests/src/com/android/launcher3/util/rule/TestStabilityRule.java b/tests/src/com/android/launcher3/util/rule/TestStabilityRule.java index b51045fc09..909aabd248 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 class TestStabilityRule implements TestRule { 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 class TestStabilityRule implements TestRule { public static boolean isPresubmit() { return getRunFlavor() == PLATFORM_PRESUBMIT; } + + public static boolean isRobolectricTest() { + return Build.FINGERPRINT.contains("robolectric"); + } }