summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/AppJankTest/src/android/app/jank/tests/IntegrationTests.java3
-rw-r--r--tests/AppJankTest/src/android/app/jank/tests/JankDataProcessorTest.java3
-rw-r--r--tests/AppJankTest/src/android/app/jank/tests/JankUtils.java18
-rw-r--r--tests/AppJankTest/src/android/app/jank/tests/TestWidget.java8
-rw-r--r--tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/GraphicsActivity.java2
-rw-r--r--tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/SurfaceControlTest.java3
-rw-r--r--tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt41
-rw-r--r--tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/KeyEventHelper.kt4
-rw-r--r--tests/Input/src/com/android/server/input/InputManagerServiceTests.kt3
-rw-r--r--tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt44
-rw-r--r--tests/Input/src/com/android/test/input/KeyCharacterMapTest.kt41
-rw-r--r--tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt2
-rw-r--r--tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java4
-rw-r--r--tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java274
-rw-r--r--tests/inputmethod/ConcurrentMultiSessionImeTest/Android.bp3
15 files changed, 251 insertions, 202 deletions
diff --git a/tests/AppJankTest/src/android/app/jank/tests/IntegrationTests.java b/tests/AppJankTest/src/android/app/jank/tests/IntegrationTests.java
index 34f0c191ecf5..fe9f63615757 100644
--- a/tests/AppJankTest/src/android/app/jank/tests/IntegrationTests.java
+++ b/tests/AppJankTest/src/android/app/jank/tests/IntegrationTests.java
@@ -76,6 +76,7 @@ public class IntegrationTests {
private ActivityTestRule<EmptyActivity> mEmptyActivityRule =
new ActivityTestRule<>(EmptyActivity.class, false , true);
+
@Before
public void setUp() {
mInstrumentation = InstrumentationRegistry.getInstrumentation();
@@ -163,7 +164,7 @@ public class IntegrationTests {
// of that state.
for (int i = 0; i < uiStates.size(); i++) {
StateTracker.StateData stateData = uiStates.get(i);
- if (stateData.mWidgetCategory.equals(AppJankStats.ANIMATION)) {
+ if (stateData.mWidgetCategory.equals(AppJankStats.WIDGET_CATEGORY_ANIMATION)) {
assertNotEquals(Long.MAX_VALUE, stateData.mVsyncIdEnd);
}
}
diff --git a/tests/AppJankTest/src/android/app/jank/tests/JankDataProcessorTest.java b/tests/AppJankTest/src/android/app/jank/tests/JankDataProcessorTest.java
index 30c568be7716..c90595782cd1 100644
--- a/tests/AppJankTest/src/android/app/jank/tests/JankDataProcessorTest.java
+++ b/tests/AppJankTest/src/android/app/jank/tests/JankDataProcessorTest.java
@@ -215,7 +215,8 @@ public class JankDataProcessorTest {
assertEquals(jankStats.getJankyFrameCount() * 2, pendingStat.getJankyFrames());
assertEquals(jankStats.getTotalFrameCount() * 2, pendingStat.getTotalFrames());
- int[] originalHistogramBuckets = jankStats.getFrameOverrunHistogram().getBucketCounters();
+ int[] originalHistogramBuckets =
+ jankStats.getRelativeFrameTimeHistogram().getBucketCounters();
int[] frameOverrunBuckets = pendingStat.getFrameOverrunBuckets();
for (int i = 0; i < frameOverrunBuckets.length; i++) {
diff --git a/tests/AppJankTest/src/android/app/jank/tests/JankUtils.java b/tests/AppJankTest/src/android/app/jank/tests/JankUtils.java
index 0b4d97ed20d6..df92898d76b1 100644
--- a/tests/AppJankTest/src/android/app/jank/tests/JankUtils.java
+++ b/tests/AppJankTest/src/android/app/jank/tests/JankUtils.java
@@ -17,7 +17,7 @@
package android.app.jank.tests;
import android.app.jank.AppJankStats;
-import android.app.jank.FrameOverrunHistogram;
+import android.app.jank.RelativeFrameTimeHistogram;
public class JankUtils {
private static final int APP_ID = 25;
@@ -29,8 +29,8 @@ public class JankUtils {
AppJankStats jankStats = new AppJankStats(
/*App Uid*/APP_ID,
/*Widget Id*/"test widget id",
- /*Widget Category*/AppJankStats.SCROLL,
- /*Widget State*/AppJankStats.SCROLLING,
+ /*Widget Category*/AppJankStats.WIDGET_CATEGORY_SCROLL,
+ /*Widget State*/AppJankStats.WIDGET_STATE_SCROLLING,
/*Total Frames*/100,
/*Janky Frames*/25,
getOverrunHistogram()
@@ -41,12 +41,12 @@ public class JankUtils {
/**
* Returns a mock histogram to be used with an AppJankStats object.
*/
- public static FrameOverrunHistogram getOverrunHistogram() {
- FrameOverrunHistogram overrunHistogram = new FrameOverrunHistogram();
- overrunHistogram.addFrameOverrunMillis(-2);
- overrunHistogram.addFrameOverrunMillis(1);
- overrunHistogram.addFrameOverrunMillis(5);
- overrunHistogram.addFrameOverrunMillis(25);
+ public static RelativeFrameTimeHistogram getOverrunHistogram() {
+ RelativeFrameTimeHistogram overrunHistogram = new RelativeFrameTimeHistogram();
+ overrunHistogram.addRelativeFrameTimeMillis(-2);
+ overrunHistogram.addRelativeFrameTimeMillis(1);
+ overrunHistogram.addRelativeFrameTimeMillis(5);
+ overrunHistogram.addRelativeFrameTimeMillis(25);
return overrunHistogram;
}
}
diff --git a/tests/AppJankTest/src/android/app/jank/tests/TestWidget.java b/tests/AppJankTest/src/android/app/jank/tests/TestWidget.java
index 5fff46038ead..71796d64ddee 100644
--- a/tests/AppJankTest/src/android/app/jank/tests/TestWidget.java
+++ b/tests/AppJankTest/src/android/app/jank/tests/TestWidget.java
@@ -45,8 +45,8 @@ public class TestWidget extends View {
*/
public void simulateAnimationStarting() {
if (jankTrackerCreated()) {
- mJankTracker.addUiState(AppJankStats.ANIMATION,
- Integer.toString(this.getId()), AppJankStats.ANIMATING);
+ mJankTracker.addUiState(AppJankStats.WIDGET_CATEGORY_ANIMATION,
+ Integer.toString(this.getId()), AppJankStats.WIDGET_STATE_ANIMATING);
}
}
@@ -55,8 +55,8 @@ public class TestWidget extends View {
*/
public void simulateAnimationEnding() {
if (jankTrackerCreated()) {
- mJankTracker.removeUiState(AppJankStats.ANIMATION,
- Integer.toString(this.getId()), AppJankStats.ANIMATING);
+ mJankTracker.removeUiState(AppJankStats.WIDGET_CATEGORY_ANIMATION,
+ Integer.toString(this.getId()), AppJankStats.WIDGET_STATE_ANIMATING);
}
}
diff --git a/tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/GraphicsActivity.java b/tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/GraphicsActivity.java
index 700856c50bae..14c8de8db5fc 100644
--- a/tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/GraphicsActivity.java
+++ b/tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/GraphicsActivity.java
@@ -819,7 +819,7 @@ public class GraphicsActivity extends Activity {
private List<Float> getExpectedFrameRateForCompatibility(int compatibility) {
assumeTrue("**** testSurfaceControlFrameRateCompatibility SKIPPED for compatibility "
+ compatibility,
- compatibility == Surface.FRAME_RATE_COMPATIBILITY_GTE);
+ compatibility == Surface.FRAME_RATE_COMPATIBILITY_AT_LEAST);
Display display = getDisplay();
List<Float> expectedFrameRates = getRefreshRates(display.getMode(), display)
diff --git a/tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/SurfaceControlTest.java b/tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/SurfaceControlTest.java
index 4d4827676c74..f1d4dc6b8faf 100644
--- a/tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/SurfaceControlTest.java
+++ b/tests/CtsSurfaceControlTestsStaging/src/main/java/android/view/surfacecontroltests/SurfaceControlTest.java
@@ -85,7 +85,8 @@ public class SurfaceControlTest {
@Test
public void testSurfaceControlFrameRateCompatibilityGte() throws InterruptedException {
GraphicsActivity activity = mActivityRule.getActivity();
- activity.testSurfaceControlFrameRateCompatibility(Surface.FRAME_RATE_COMPATIBILITY_GTE);
+ activity.testSurfaceControlFrameRateCompatibility(
+ Surface.FRAME_RATE_COMPATIBILITY_AT_LEAST);
}
@Test
diff --git a/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt
index 2e7b20763b9e..0824874f2a36 100644
--- a/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt
+++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt
@@ -28,7 +28,9 @@ import android.tools.device.apphelpers.IStandardAppHelper
import android.tools.helpers.SYSTEMUI_PACKAGE
import android.tools.traces.parsers.WindowManagerStateHelper
import android.tools.traces.wm.WindowingMode
+import android.view.KeyEvent.KEYCODE_EQUALS
import android.view.KeyEvent.KEYCODE_LEFT_BRACKET
+import android.view.KeyEvent.KEYCODE_MINUS
import android.view.KeyEvent.KEYCODE_RIGHT_BRACKET
import android.view.KeyEvent.META_META_ON
import android.view.WindowInsets
@@ -146,10 +148,19 @@ open class DesktopModeAppHelper(private val innerHelper: IStandardAppHelper) :
}
/** Click maximise button on the app header for the given app. */
- fun maximiseDesktopApp(wmHelper: WindowManagerStateHelper, device: UiDevice) {
- val caption = getCaptionForTheApp(wmHelper, device)
- val maximizeButton = getMaximizeButtonForTheApp(caption)
- maximizeButton.click()
+ fun maximiseDesktopApp(
+ wmHelper: WindowManagerStateHelper,
+ device: UiDevice,
+ usingKeyboard: Boolean = false
+ ) {
+ if (usingKeyboard) {
+ val keyEventHelper = KeyEventHelper(getInstrumentation())
+ keyEventHelper.press(KEYCODE_EQUALS, META_META_ON)
+ } else {
+ val caption = getCaptionForTheApp(wmHelper, device)
+ val maximizeButton = getMaximizeButtonForTheApp(caption)
+ maximizeButton.click()
+ }
wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify()
}
@@ -160,10 +171,21 @@ open class DesktopModeAppHelper(private val innerHelper: IStandardAppHelper) :
?: error("Unable to find resource $MINIMIZE_BUTTON_VIEW\n")
}
- fun minimizeDesktopApp(wmHelper: WindowManagerStateHelper, device: UiDevice, isPip: Boolean = false) {
- val caption = getCaptionForTheApp(wmHelper, device)
- val minimizeButton = getMinimizeButtonForTheApp(caption)
- minimizeButton.click()
+ fun minimizeDesktopApp(
+ wmHelper: WindowManagerStateHelper,
+ device: UiDevice,
+ isPip: Boolean = false,
+ usingKeyboard: Boolean = false,
+ ) {
+ if (usingKeyboard) {
+ val keyEventHelper = KeyEventHelper(getInstrumentation())
+ keyEventHelper.press(KEYCODE_MINUS, META_META_ON)
+ } else {
+ val caption = getCaptionForTheApp(wmHelper, device)
+ val minimizeButton = getMinimizeButtonForTheApp(caption)
+ minimizeButton.click()
+ }
+
wmHelper
.StateSyncBuilder()
.withAppTransitionIdle()
@@ -226,8 +248,7 @@ open class DesktopModeAppHelper(private val innerHelper: IStandardAppHelper) :
toLeft: Boolean,
) {
val bracketKey = if (toLeft) KEYCODE_LEFT_BRACKET else KEYCODE_RIGHT_BRACKET
- keyEventHelper.actionDown(bracketKey, META_META_ON)
- keyEventHelper.actionUp(bracketKey, META_META_ON)
+ keyEventHelper.press(bracketKey, META_META_ON)
waitAndVerifySnapResize(wmHelper, context, toLeft)
}
diff --git a/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/KeyEventHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/KeyEventHelper.kt
index ebd8cc3ce1b4..55ed09154aee 100644
--- a/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/KeyEventHelper.kt
+++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/KeyEventHelper.kt
@@ -29,6 +29,10 @@ import android.view.KeyEvent
class KeyEventHelper(
private val instr: Instrumentation,
) {
+ fun press(keyCode: Int, metaState: Int = 0) {
+ actionDown(keyCode, metaState)
+ actionUp(keyCode, metaState)
+ }
fun actionDown(keyCode: Int, metaState: Int = 0, time: Long = SystemClock.uptimeMillis()) {
injectKeyEvent(ACTION_DOWN, keyCode, metaState, downTime = time, eventTime = time)
diff --git a/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt b/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt
index aea75d8e7c85..d75a8f433af8 100644
--- a/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt
+++ b/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt
@@ -613,7 +613,8 @@ class InputManagerServiceTests {
0
},
"title",
- /* uid = */0
+ /* uid = */0,
+ /* inputFeatureFlags = */ 0
)
whenever(windowManagerInternal.getKeyInterceptionInfoFromToken(any())).thenReturn(info)
}
diff --git a/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt b/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt
index 4959cb3651fd..4d7085feb98f 100644
--- a/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt
+++ b/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt
@@ -466,27 +466,27 @@ class KeyGestureControllerTests {
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
),
TestData(
- "META + ALT + DPAD_LEFT -> Change Splitscreen Focus Left",
+ "CTRL + ALT + DPAD_LEFT -> Change Splitscreen Focus Left",
intArrayOf(
- KeyEvent.KEYCODE_META_LEFT,
+ KeyEvent.KEYCODE_CTRL_LEFT,
KeyEvent.KEYCODE_ALT_LEFT,
KeyEvent.KEYCODE_DPAD_LEFT
),
KeyGestureEvent.KEY_GESTURE_TYPE_CHANGE_SPLITSCREEN_FOCUS_LEFT,
intArrayOf(KeyEvent.KEYCODE_DPAD_LEFT),
- KeyEvent.META_META_ON or KeyEvent.META_ALT_ON,
+ KeyEvent.META_CTRL_ON or KeyEvent.META_ALT_ON,
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
),
TestData(
- "META + CTRL + DPAD_RIGHT -> Change Splitscreen Focus Right",
+ "CTRL + ALT + DPAD_RIGHT -> Change Splitscreen Focus Right",
intArrayOf(
- KeyEvent.KEYCODE_META_LEFT,
+ KeyEvent.KEYCODE_CTRL_LEFT,
KeyEvent.KEYCODE_ALT_LEFT,
KeyEvent.KEYCODE_DPAD_RIGHT
),
KeyGestureEvent.KEY_GESTURE_TYPE_CHANGE_SPLITSCREEN_FOCUS_RIGHT,
intArrayOf(KeyEvent.KEYCODE_DPAD_RIGHT),
- KeyEvent.META_META_ON or KeyEvent.META_ALT_ON,
+ KeyEvent.META_CTRL_ON or KeyEvent.META_ALT_ON,
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
),
TestData(
@@ -735,25 +735,25 @@ class KeyGestureControllerTests {
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
),
TestData(
- "META + ALT + '-' -> Magnifier Zoom Out",
+ "META + ALT + '-' -> Magnification Zoom Out",
intArrayOf(
KeyEvent.KEYCODE_META_LEFT,
KeyEvent.KEYCODE_ALT_LEFT,
KeyEvent.KEYCODE_MINUS
),
- KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFIER_ZOOM_OUT,
+ KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFICATION_ZOOM_OUT,
intArrayOf(KeyEvent.KEYCODE_MINUS),
KeyEvent.META_META_ON or KeyEvent.META_ALT_ON,
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
),
TestData(
- "META + ALT + '=' -> Magnifier Zoom In",
+ "META + ALT + '=' -> Magnification Zoom In",
intArrayOf(
KeyEvent.KEYCODE_META_LEFT,
KeyEvent.KEYCODE_ALT_LEFT,
KeyEvent.KEYCODE_EQUALS
),
- KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFIER_ZOOM_IN,
+ KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFICATION_ZOOM_IN,
intArrayOf(KeyEvent.KEYCODE_EQUALS),
KeyEvent.META_META_ON or KeyEvent.META_ALT_ON,
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
@@ -785,49 +785,49 @@ class KeyGestureControllerTests {
TestData(
"META + ALT + 'Down' -> Magnification Pan Down",
intArrayOf(
- KeyEvent.KEYCODE_CTRL_LEFT,
+ KeyEvent.KEYCODE_META_LEFT,
KeyEvent.KEYCODE_ALT_LEFT,
KeyEvent.KEYCODE_DPAD_DOWN
),
- KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFIER_PAN_DOWN,
+ KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFICATION_PAN_DOWN,
intArrayOf(KeyEvent.KEYCODE_DPAD_DOWN),
- KeyEvent.META_CTRL_ON or KeyEvent.META_ALT_ON,
+ KeyEvent.META_META_ON or KeyEvent.META_ALT_ON,
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
),
TestData(
"META + ALT + 'Up' -> Magnification Pan Up",
intArrayOf(
- KeyEvent.KEYCODE_CTRL_LEFT,
+ KeyEvent.KEYCODE_META_LEFT,
KeyEvent.KEYCODE_ALT_LEFT,
KeyEvent.KEYCODE_DPAD_UP
),
- KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFIER_PAN_UP,
+ KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFICATION_PAN_UP,
intArrayOf(KeyEvent.KEYCODE_DPAD_UP),
- KeyEvent.META_CTRL_ON or KeyEvent.META_ALT_ON,
+ KeyEvent.META_META_ON or KeyEvent.META_ALT_ON,
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
),
TestData(
"META + ALT + 'Left' -> Magnification Pan Left",
intArrayOf(
- KeyEvent.KEYCODE_CTRL_LEFT,
+ KeyEvent.KEYCODE_META_LEFT,
KeyEvent.KEYCODE_ALT_LEFT,
KeyEvent.KEYCODE_DPAD_LEFT
),
- KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFIER_PAN_LEFT,
+ KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFICATION_PAN_LEFT,
intArrayOf(KeyEvent.KEYCODE_DPAD_LEFT),
- KeyEvent.META_CTRL_ON or KeyEvent.META_ALT_ON,
+ KeyEvent.META_META_ON or KeyEvent.META_ALT_ON,
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
),
TestData(
"META + ALT + 'Right' -> Magnification Pan Right",
intArrayOf(
- KeyEvent.KEYCODE_CTRL_LEFT,
+ KeyEvent.KEYCODE_META_LEFT,
KeyEvent.KEYCODE_ALT_LEFT,
KeyEvent.KEYCODE_DPAD_RIGHT
),
- KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFIER_PAN_RIGHT,
+ KeyGestureEvent.KEY_GESTURE_TYPE_MAGNIFICATION_PAN_RIGHT,
intArrayOf(KeyEvent.KEYCODE_DPAD_RIGHT),
- KeyEvent.META_CTRL_ON or KeyEvent.META_ALT_ON,
+ KeyEvent.META_META_ON or KeyEvent.META_ALT_ON,
intArrayOf(KeyGestureEvent.ACTION_GESTURE_COMPLETE)
),
)
diff --git a/tests/Input/src/com/android/test/input/KeyCharacterMapTest.kt b/tests/Input/src/com/android/test/input/KeyCharacterMapTest.kt
index 281837920548..860d9f680c4c 100644
--- a/tests/Input/src/com/android/test/input/KeyCharacterMapTest.kt
+++ b/tests/Input/src/com/android/test/input/KeyCharacterMapTest.kt
@@ -16,10 +16,17 @@
package com.android.test.input
+import android.platform.test.annotations.EnableFlags
+import android.platform.test.flag.junit.SetFlagsRule
+
import android.view.KeyCharacterMap
import android.view.KeyEvent
+import com.android.hardware.input.Flags
+
import org.junit.Assert.assertEquals
+import org.junit.Assert.assertNull
+import org.junit.Rule
import org.junit.Test
/**
@@ -30,26 +37,38 @@ import org.junit.Test
*
*/
class KeyCharacterMapTest {
+ @get:Rule
+ val setFlagsRule = SetFlagsRule()
+
@Test
+ @EnableFlags(Flags.FLAG_REMOVE_FALLBACK_MODIFIERS)
fun testGetFallback() {
// Based off of VIRTUAL kcm fallbacks.
val keyCharacterMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD)
// One modifier fallback.
- assertEquals(
- keyCharacterMap.getFallbackAction(KeyEvent.KEYCODE_SPACE,
- KeyEvent.META_CTRL_ON).keyCode,
- KeyEvent.KEYCODE_LANGUAGE_SWITCH)
+ val oneModifierFallback = keyCharacterMap.getFallbackAction(KeyEvent.KEYCODE_SPACE,
+ KeyEvent.META_CTRL_ON)
+ assertEquals(KeyEvent.KEYCODE_LANGUAGE_SWITCH, oneModifierFallback.keyCode)
+ assertEquals(0, oneModifierFallback.metaState)
// Multiple modifier fallback.
- assertEquals(
- keyCharacterMap.getFallbackAction(KeyEvent.KEYCODE_DEL,
- KeyEvent.META_CTRL_ON or KeyEvent.META_ALT_ON).keyCode,
- KeyEvent.KEYCODE_BACK)
+ val twoModifierFallback = keyCharacterMap.getFallbackAction(KeyEvent.KEYCODE_DEL,
+ KeyEvent.META_CTRL_ON or KeyEvent.META_ALT_ON)
+ assertEquals(KeyEvent.KEYCODE_BACK, twoModifierFallback.keyCode)
+ assertEquals(0, twoModifierFallback.metaState)
// No default button, fallback only.
- assertEquals(
- keyCharacterMap.getFallbackAction(KeyEvent.KEYCODE_BUTTON_A, 0).keyCode,
- KeyEvent.KEYCODE_DPAD_CENTER)
+ val keyOnlyFallback =
+ keyCharacterMap.getFallbackAction(KeyEvent.KEYCODE_BUTTON_A, 0)
+ assertEquals(KeyEvent.KEYCODE_DPAD_CENTER, keyOnlyFallback.keyCode)
+ assertEquals(0, keyOnlyFallback.metaState)
+
+ // A key event that is not an exact match for a fallback. Expect a null return.
+ // E.g. Ctrl + Space -> LanguageSwitch
+ // Ctrl + Alt + Space -> Ctrl + Alt + Space (No fallback).
+ val noMatchFallback = keyCharacterMap.getFallbackAction(KeyEvent.KEYCODE_SPACE,
+ KeyEvent.META_CTRL_ON or KeyEvent.META_ALT_ON)
+ assertNull(noMatchFallback)
}
}
diff --git a/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt b/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt
index c61a25021949..0b281d8d39e2 100644
--- a/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt
+++ b/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt
@@ -21,6 +21,7 @@ import android.cts.input.EventVerifier
import android.graphics.PointF
import android.hardware.input.InputManager
import android.os.ParcelFileDescriptor
+import android.server.wm.CtsWindowInfoUtils.waitForWindowOnTop
import android.util.Log
import android.util.Size
import android.view.InputEvent
@@ -113,6 +114,7 @@ class UinputRecordingIntegrationTests {
testName,
size = testData.displaySize
).use { scenario ->
+ waitForWindowOnTop(scenario.activity.window)
scenario.activity.window.decorView.requestUnbufferedDispatch(INPUT_DEVICE_SOURCE_ALL)
try {
diff --git a/tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java b/tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java
index 49616c30b784..8ac3433033c6 100644
--- a/tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java
+++ b/tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java
@@ -765,14 +765,14 @@ public class CrashRecoveryTest {
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(e);
}
- watchdog.registerHealthObserver(rollbackObserver, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, rollbackObserver);
return rollbackObserver;
}
RescuePartyObserver setUpRescuePartyObserver(PackageWatchdog watchdog) {
setCrashRecoveryPropRescueBootCount(0);
RescuePartyObserver rescuePartyObserver = spy(RescuePartyObserver.getInstance(mSpyContext));
assertFalse(RescueParty.isRebootPropertySet());
- watchdog.registerHealthObserver(rescuePartyObserver, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, rescuePartyObserver);
return rescuePartyObserver;
}
diff --git a/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java b/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java
index 928e2326498d..1c50cb1b55fd 100644
--- a/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java
+++ b/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java
@@ -54,7 +54,6 @@ import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.DeviceConfig;
import android.util.AtomicFile;
import android.util.LongArrayQueue;
-import android.util.Slog;
import android.util.Xml;
import androidx.test.InstrumentationRegistry;
@@ -231,8 +230,8 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer);
raiseFatalFailureAndDispatch(watchdog,
Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE)),
PackageWatchdog.FAILURE_REASON_UNKNOWN);
@@ -248,10 +247,10 @@ public class PackageWatchdogTest {
TestObserver observer1 = new TestObserver(OBSERVER_NAME_1);
TestObserver observer2 = new TestObserver(OBSERVER_NAME_2);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.registerHealthObserver(observer2, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer2, Arrays.asList(APP_A, APP_B), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
+ watchdog.registerHealthObserver(mTestExecutor, observer2);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A, APP_B), SHORT_DURATION, observer2);
raiseFatalFailureAndDispatch(watchdog,
Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE),
new VersionedPackage(APP_B, VERSION_CODE)),
@@ -268,8 +267,8 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer);
watchdog.unregisterHealthObserver(observer);
raiseFatalFailureAndDispatch(watchdog,
Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE)),
@@ -285,10 +284,10 @@ public class PackageWatchdogTest {
TestObserver observer1 = new TestObserver(OBSERVER_NAME_1);
TestObserver observer2 = new TestObserver(OBSERVER_NAME_2);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.registerHealthObserver(observer2, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer2, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
+ watchdog.registerHealthObserver(mTestExecutor, observer2);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer2);
watchdog.unregisterHealthObserver(observer2);
raiseFatalFailureAndDispatch(watchdog,
Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE)),
@@ -305,8 +304,8 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer);
moveTimeForwardAndDispatch(SHORT_DURATION);
raiseFatalFailureAndDispatch(watchdog,
Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE)),
@@ -322,10 +321,10 @@ public class PackageWatchdogTest {
TestObserver observer1 = new TestObserver(OBSERVER_NAME_1);
TestObserver observer2 = new TestObserver(OBSERVER_NAME_2);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.registerHealthObserver(observer2, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer2, Arrays.asList(APP_A), LONG_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
+ watchdog.registerHealthObserver(mTestExecutor, observer2);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), LONG_DURATION, observer2);
moveTimeForwardAndDispatch(SHORT_DURATION);
raiseFatalFailureAndDispatch(watchdog,
Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE)),
@@ -344,14 +343,14 @@ public class PackageWatchdogTest {
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
// Start observing APP_A
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer);
// Then advance time half-way
moveTimeForwardAndDispatch(SHORT_DURATION / 2);
// Start observing APP_A again
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer);
// Then advance time such that it should have expired were it not for the second observation
moveTimeForwardAndDispatch((SHORT_DURATION / 2) + 1);
@@ -373,17 +372,17 @@ public class PackageWatchdogTest {
TestObserver observer1 = new TestObserver(OBSERVER_NAME_1);
TestObserver observer2 = new TestObserver(OBSERVER_NAME_2);
- watchdog1.registerHealthObserver(observer1, mTestExecutor);
- watchdog1.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog1.registerHealthObserver(observer2, mTestExecutor);
- watchdog1.startExplicitHealthCheck(observer2, Arrays.asList(APP_A, APP_B), SHORT_DURATION);
+ watchdog1.registerHealthObserver(mTestExecutor, observer1);
+ watchdog1.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
+ watchdog1.registerHealthObserver(mTestExecutor, observer2);
+ watchdog1.startExplicitHealthCheck(Arrays.asList(APP_A, APP_B), SHORT_DURATION, observer2);
// Then advance time and run IO Handler so file is saved
mTestLooper.dispatchAll();
// Then start a new watchdog
PackageWatchdog watchdog2 = createWatchdog();
// Then resume observer1 and observer2
- watchdog2.registerHealthObserver(observer1, mTestExecutor);
- watchdog2.registerHealthObserver(observer2, mTestExecutor);
+ watchdog2.registerHealthObserver(mTestExecutor, observer1);
+ watchdog2.registerHealthObserver(mTestExecutor, observer2);
raiseFatalFailureAndDispatch(watchdog2,
Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE),
new VersionedPackage(APP_B, VERSION_CODE)),
@@ -405,10 +404,10 @@ public class PackageWatchdogTest {
TestObserver observer1 = new TestObserver(OBSERVER_NAME_1);
TestObserver observer2 = new TestObserver(OBSERVER_NAME_2);
- watchdog.registerHealthObserver(observer2, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer2, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer2);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer2);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
// Then fail APP_A below the threshold
for (int i = 0; i < watchdog.getTriggerFailureCount() - 1; i++) {
@@ -434,10 +433,10 @@ public class PackageWatchdogTest {
TestObserver observer1 = new TestObserver(OBSERVER_NAME_1);
TestObserver observer2 = new TestObserver(OBSERVER_NAME_2);
- watchdog.registerHealthObserver(observer2, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer2, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_B), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer2);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer2);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_B), SHORT_DURATION, observer1);
// Then fail APP_C (not observed) above the threshold
raiseFatalFailureAndDispatch(watchdog,
@@ -469,8 +468,8 @@ public class PackageWatchdogTest {
}
};
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer);
// Then fail APP_A (different version) above the threshold
raiseFatalFailureAndDispatch(watchdog,
@@ -499,18 +498,17 @@ public class PackageWatchdogTest {
PackageHealthObserverImpact.USER_IMPACT_LEVEL_10);
// Start observing for all impact observers
- watchdog.registerHealthObserver(observerNone, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerNone, Arrays.asList(APP_A, APP_B, APP_C, APP_D),
- SHORT_DURATION);
- watchdog.registerHealthObserver(observerHigh, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerHigh, Arrays.asList(APP_A, APP_B, APP_C),
- SHORT_DURATION);
- watchdog.registerHealthObserver(observerMid, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerMid, Arrays.asList(APP_A, APP_B),
- SHORT_DURATION);
- watchdog.registerHealthObserver(observerLow, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerLow, Arrays.asList(APP_A),
- SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observerNone);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A, APP_B, APP_C, APP_D),
+ SHORT_DURATION, observerNone);
+ watchdog.registerHealthObserver(mTestExecutor, observerHigh);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A, APP_B, APP_C), SHORT_DURATION,
+ observerHigh);
+ watchdog.registerHealthObserver(mTestExecutor, observerMid);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A, APP_B), SHORT_DURATION,
+ observerMid);
+ watchdog.registerHealthObserver(mTestExecutor, observerLow);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observerLow);
// Then fail all apps above the threshold
raiseFatalFailureAndDispatch(watchdog,
@@ -549,18 +547,17 @@ public class PackageWatchdogTest {
PackageHealthObserverImpact.USER_IMPACT_LEVEL_10);
// Start observing for all impact observers
- watchdog.registerHealthObserver(observerNone, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerNone, Arrays.asList(APP_A, APP_B, APP_C, APP_D),
- SHORT_DURATION);
- watchdog.registerHealthObserver(observerHigh, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerHigh, Arrays.asList(APP_A, APP_B, APP_C),
- SHORT_DURATION);
- watchdog.registerHealthObserver(observerMid, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerMid, Arrays.asList(APP_A, APP_B),
- SHORT_DURATION);
- watchdog.registerHealthObserver(observerLow, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerLow, Arrays.asList(APP_A),
- SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observerNone);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A, APP_B, APP_C, APP_D),
+ SHORT_DURATION, observerNone);
+ watchdog.registerHealthObserver(mTestExecutor, observerHigh);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A, APP_B, APP_C), SHORT_DURATION,
+ observerHigh);
+ watchdog.registerHealthObserver(mTestExecutor, observerMid);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A, APP_B), SHORT_DURATION,
+ observerMid);
+ watchdog.registerHealthObserver(mTestExecutor, observerLow);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observerLow);
// Then fail all apps above the threshold
raiseFatalFailureAndDispatch(watchdog,
@@ -607,10 +604,10 @@ public class PackageWatchdogTest {
PackageHealthObserverImpact.USER_IMPACT_LEVEL_30);
// Start observing for observerFirst and observerSecond with failure handling
- watchdog.registerHealthObserver(observerFirst, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerFirst, Arrays.asList(APP_A), LONG_DURATION);
- watchdog.registerHealthObserver(observerSecond, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerSecond, Arrays.asList(APP_A), LONG_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observerFirst);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), LONG_DURATION, observerFirst);
+ watchdog.registerHealthObserver(mTestExecutor, observerSecond);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), LONG_DURATION, observerSecond);
// Then fail APP_A above the threshold
raiseFatalFailureAndDispatch(watchdog,
@@ -673,10 +670,10 @@ public class PackageWatchdogTest {
PackageHealthObserverImpact.USER_IMPACT_LEVEL_30);
// Start observing for observerFirst and observerSecond with failure handling
- watchdog.registerHealthObserver(observerFirst, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerFirst, Arrays.asList(APP_A), LONG_DURATION);
- watchdog.registerHealthObserver(observerSecond, mTestExecutor);
- watchdog.startExplicitHealthCheck(observerSecond, Arrays.asList(APP_A), LONG_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observerFirst);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), LONG_DURATION, observerFirst);
+ watchdog.registerHealthObserver(mTestExecutor, observerSecond);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), LONG_DURATION, observerSecond);
// Then fail APP_A above the threshold
raiseFatalFailureAndDispatch(watchdog,
@@ -743,10 +740,10 @@ public class PackageWatchdogTest {
PackageHealthObserverImpact.USER_IMPACT_LEVEL_100);
// Start observing for observer1 and observer2 with failure handling
- watchdog.registerHealthObserver(observer2, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer2, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer2);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer2);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
// Then fail APP_A above the threshold
raiseFatalFailureAndDispatch(watchdog,
@@ -767,10 +764,10 @@ public class PackageWatchdogTest {
PackageHealthObserverImpact.USER_IMPACT_LEVEL_50);
// Start observing for observer1 and observer2 with failure handling
- watchdog.registerHealthObserver(observer2, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer2, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer2);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer2);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
// Then fail APP_A above the threshold
raiseFatalFailureAndDispatch(watchdog,
@@ -800,10 +797,10 @@ public class PackageWatchdogTest {
// Start observing with explicit health checks for APP_A and APP_B respectively
// with observer1 and observer2
controller.setSupportedPackages(Arrays.asList(APP_A, APP_B));
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.registerHealthObserver(observer2, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer2, Arrays.asList(APP_B), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
+ watchdog.registerHealthObserver(mTestExecutor, observer2);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_B), SHORT_DURATION, observer2);
// Run handler so requests are dispatched to the controller
mTestLooper.dispatchAll();
@@ -819,8 +816,8 @@ public class PackageWatchdogTest {
// Observer3 didn't exist when we got the explicit health check above, so
// it starts out with a non-passing explicit health check and has to wait for a pass
// otherwise it would be notified of APP_A failure on expiry
- watchdog.registerHealthObserver(observer3, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer3, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer3);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer3);
// Then expire observers
moveTimeForwardAndDispatch(SHORT_DURATION);
@@ -850,9 +847,9 @@ public class PackageWatchdogTest {
// Start observing with explicit health checks for APP_A and APP_B
controller.setSupportedPackages(Arrays.asList(APP_A, APP_B, APP_C));
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_B), LONG_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_B), LONG_DURATION, observer);
// Run handler so requests are dispatched to the controller
mTestLooper.dispatchAll();
@@ -888,7 +885,7 @@ public class PackageWatchdogTest {
// Then set new supported packages
controller.setSupportedPackages(Arrays.asList(APP_C));
// Start observing APP_A and APP_C; only APP_C has support for explicit health checks
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A, APP_C), SHORT_DURATION);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A, APP_C), SHORT_DURATION, observer);
// Run handler so requests/cancellations are dispatched to the controller
mTestLooper.dispatchAll();
@@ -919,8 +916,8 @@ public class PackageWatchdogTest {
// package observation duration == LONG_DURATION
// health check duration == SHORT_DURATION (set by default in the TestController)
controller.setSupportedPackages(Arrays.asList(APP_A));
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), LONG_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), LONG_DURATION, observer);
// Then APP_A has exceeded health check duration
moveTimeForwardAndDispatch(SHORT_DURATION);
@@ -951,8 +948,8 @@ public class PackageWatchdogTest {
// package observation duration == SHORT_DURATION / 2
// health check duration == SHORT_DURATION (set by default in the TestController)
controller.setSupportedPackages(Arrays.asList(APP_A));
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), SHORT_DURATION / 2);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION / 2, observer);
// Forward time to expire the observation duration
moveTimeForwardAndDispatch(SHORT_DURATION / 2);
@@ -1025,7 +1022,7 @@ public class PackageWatchdogTest {
// Start observing with failure handling
TestObserver observer = new TestObserver(OBSERVER_NAME_1,
PackageHealthObserverImpact.USER_IMPACT_LEVEL_100);
- wd.startExplicitHealthCheck(observer, Collections.singletonList(APP_A), SHORT_DURATION);
+ wd.startExplicitHealthCheck(Collections.singletonList(APP_A), SHORT_DURATION, observer);
// Notify of NetworkStack failure
mConnectivityModuleCallbackCaptor.getValue().onNetworkStackFailure(APP_A);
@@ -1045,7 +1042,7 @@ public class PackageWatchdogTest {
// Start observing with failure handling
TestObserver observer = new TestObserver(OBSERVER_NAME_1,
PackageHealthObserverImpact.USER_IMPACT_LEVEL_100);
- wd.startExplicitHealthCheck(observer, Collections.singletonList(APP_A), SHORT_DURATION);
+ wd.startExplicitHealthCheck(Collections.singletonList(APP_A), SHORT_DURATION, observer);
// Notify of NetworkStack failure
mConnectivityModuleCallbackCaptor.getValue().onNetworkStackFailure(APP_A);
@@ -1066,8 +1063,8 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer);
// Fail APP_A below the threshold which should not trigger package failures
for (int i = 0; i < PackageWatchdog.DEFAULT_TRIGGER_FAILURE_COUNT - 1; i++) {
watchdog.notifyPackageFailure(Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE)),
@@ -1095,8 +1092,8 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A, APP_B), Long.MAX_VALUE);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A, APP_B), Long.MAX_VALUE, observer);
watchdog.notifyPackageFailure(Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE)),
PackageWatchdog.FAILURE_REASON_UNKNOWN);
moveTimeForwardAndDispatch(PackageWatchdog.DEFAULT_TRIGGER_FAILURE_DURATION_MS + 1);
@@ -1129,8 +1126,8 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), -1);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), -1, observer);
// Note: Don't move too close to the expiration time otherwise the handler will be thrashed
// by PackageWatchdog#scheduleNextSyncStateLocked which keeps posting runnables with very
// small timeouts.
@@ -1152,8 +1149,8 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), -1);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), -1, observer);
moveTimeForwardAndDispatch(PackageWatchdog.DEFAULT_OBSERVING_DURATION_MS + 1);
raiseFatalFailureAndDispatch(watchdog,
Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE)),
@@ -1175,8 +1172,8 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, Arrays.asList(APP_A), Long.MAX_VALUE);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), Long.MAX_VALUE, observer);
// Raise 2 failures at t=0 and t=900 respectively
watchdog.notifyPackageFailure(Arrays.asList(new VersionedPackage(APP_A, VERSION_CODE)),
PackageWatchdog.FAILURE_REASON_UNKNOWN);
@@ -1203,10 +1200,10 @@ public class PackageWatchdogTest {
TestObserver observer1 = new TestObserver(OBSERVER_NAME_1);
TestObserver observer2 = new TestObserver(OBSERVER_NAME_2);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
- watchdog.registerHealthObserver(observer2, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer2, Arrays.asList(APP_B), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
+ watchdog.registerHealthObserver(mTestExecutor, observer2);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_B), SHORT_DURATION, observer2);
raiseFatalFailureAndDispatch(watchdog, Arrays.asList(new VersionedPackage(APP_A,
VERSION_CODE)), PackageWatchdog.FAILURE_REASON_APP_CRASH);
@@ -1225,8 +1222,8 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer1 = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, Arrays.asList(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_A), SHORT_DURATION, observer1);
raiseFatalFailureAndDispatch(watchdog, Arrays.asList(new VersionedPackage(APP_A,
VERSION_CODE)), PackageWatchdog.FAILURE_REASON_NATIVE_CRASH);
@@ -1246,8 +1243,8 @@ public class PackageWatchdogTest {
persistentObserver.setPersistent(true);
persistentObserver.setMayObservePackages(true);
- watchdog.registerHealthObserver(persistentObserver, mTestExecutor);
- watchdog.startExplicitHealthCheck(persistentObserver, Arrays.asList(APP_B), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, persistentObserver);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_B), SHORT_DURATION, persistentObserver);
raiseFatalFailureAndDispatch(watchdog, Arrays.asList(new VersionedPackage(APP_A,
VERSION_CODE)), PackageWatchdog.FAILURE_REASON_UNKNOWN);
@@ -1265,8 +1262,8 @@ public class PackageWatchdogTest {
persistentObserver.setPersistent(true);
persistentObserver.setMayObservePackages(false);
- watchdog.registerHealthObserver(persistentObserver, mTestExecutor);
- watchdog.startExplicitHealthCheck(persistentObserver, Arrays.asList(APP_B), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, persistentObserver);
+ watchdog.startExplicitHealthCheck(Arrays.asList(APP_B), SHORT_DURATION, persistentObserver);
raiseFatalFailureAndDispatch(watchdog, Arrays.asList(new VersionedPackage(APP_A,
VERSION_CODE)), PackageWatchdog.FAILURE_REASON_UNKNOWN);
@@ -1277,11 +1274,10 @@ public class PackageWatchdogTest {
/** Ensure that boot loop mitigation is done when the number of boots meets the threshold. */
@Test
public void testBootLoopDetection_meetsThreshold() {
- Slog.w("hrm1243", "I should definitely be here try 1 ");
mSetFlagsRule.disableFlags(Flags.FLAG_RECOVERABILITY_DETECTION);
PackageWatchdog watchdog = createWatchdog();
TestObserver bootObserver = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(bootObserver, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver);
for (int i = 0; i < PackageWatchdog.DEFAULT_BOOT_LOOP_TRIGGER_COUNT; i++) {
watchdog.noteBoot();
}
@@ -1293,7 +1289,7 @@ public class PackageWatchdogTest {
public void testBootLoopDetection_meetsThresholdRecoverability() {
PackageWatchdog watchdog = createWatchdog();
TestObserver bootObserver = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(bootObserver, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver);
for (int i = 0; i < 15; i++) {
watchdog.noteBoot();
}
@@ -1309,7 +1305,7 @@ public class PackageWatchdogTest {
public void testBootLoopDetection_doesNotMeetThreshold() {
PackageWatchdog watchdog = createWatchdog();
TestObserver bootObserver = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(bootObserver, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver);
for (int i = 0; i < PackageWatchdog.DEFAULT_BOOT_LOOP_TRIGGER_COUNT - 1; i++) {
watchdog.noteBoot();
}
@@ -1326,7 +1322,7 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver bootObserver = new TestObserver(OBSERVER_NAME_1,
PackageHealthObserverImpact.USER_IMPACT_LEVEL_30);
- watchdog.registerHealthObserver(bootObserver, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver);
for (int i = 0; i < PackageWatchdog.DEFAULT_BOOT_LOOP_TRIGGER_COUNT - 1; i++) {
watchdog.noteBoot();
}
@@ -1345,8 +1341,8 @@ public class PackageWatchdogTest {
bootObserver1.setImpact(PackageHealthObserverImpact.USER_IMPACT_LEVEL_10);
TestObserver bootObserver2 = new TestObserver(OBSERVER_NAME_2);
bootObserver2.setImpact(PackageHealthObserverImpact.USER_IMPACT_LEVEL_30);
- watchdog.registerHealthObserver(bootObserver1, mTestExecutor);
- watchdog.registerHealthObserver(bootObserver2, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver1);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver2);
for (int i = 0; i < PackageWatchdog.DEFAULT_BOOT_LOOP_TRIGGER_COUNT; i++) {
watchdog.noteBoot();
}
@@ -1362,8 +1358,8 @@ public class PackageWatchdogTest {
bootObserver1.setImpact(PackageHealthObserverImpact.USER_IMPACT_LEVEL_10);
TestObserver bootObserver2 = new TestObserver(OBSERVER_NAME_2);
bootObserver2.setImpact(PackageHealthObserverImpact.USER_IMPACT_LEVEL_30);
- watchdog.registerHealthObserver(bootObserver1, mTestExecutor);
- watchdog.registerHealthObserver(bootObserver2, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver1);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver2);
for (int i = 0; i < 15; i++) {
watchdog.noteBoot();
}
@@ -1380,7 +1376,7 @@ public class PackageWatchdogTest {
mSetFlagsRule.disableFlags(Flags.FLAG_RECOVERABILITY_DETECTION);
PackageWatchdog watchdog = createWatchdog();
TestObserver bootObserver = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(bootObserver, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver);
for (int i = 0; i < 4; i++) {
for (int j = 0; j < PackageWatchdog.DEFAULT_BOOT_LOOP_TRIGGER_COUNT; j++) {
watchdog.noteBoot();
@@ -1403,7 +1399,7 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog();
TestObserver bootObserver = new TestObserver(OBSERVER_NAME_1,
PackageHealthObserverImpact.USER_IMPACT_LEVEL_30);
- watchdog.registerHealthObserver(bootObserver, mTestExecutor);
+ watchdog.registerHealthObserver(mTestExecutor, bootObserver);
for (int j = 0; j < PackageWatchdog.DEFAULT_BOOT_LOOP_TRIGGER_COUNT - 1; j++) {
watchdog.noteBoot();
}
@@ -1431,8 +1427,8 @@ public class PackageWatchdogTest {
public void testNullFailedPackagesList() {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer1 = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer1, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer1, List.of(APP_A), LONG_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer1);
+ watchdog.startExplicitHealthCheck(List.of(APP_A), LONG_DURATION, observer1);
raiseFatalFailureAndDispatch(watchdog, null, PackageWatchdog.FAILURE_REASON_APP_CRASH);
assertThat(observer1.mMitigatedPackages).isEmpty();
@@ -1450,18 +1446,18 @@ public class PackageWatchdogTest {
PackageWatchdog watchdog = createWatchdog(testController, true);
TestObserver testObserver1 = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(testObserver1, mTestExecutor);
- watchdog.startExplicitHealthCheck(testObserver1, List.of(APP_A), LONG_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, testObserver1);
+ watchdog.startExplicitHealthCheck(List.of(APP_A), LONG_DURATION, testObserver1);
mTestLooper.dispatchAll();
TestObserver testObserver2 = new TestObserver(OBSERVER_NAME_2);
- watchdog.registerHealthObserver(testObserver2, mTestExecutor);
- watchdog.startExplicitHealthCheck(testObserver2, List.of(APP_B), LONG_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, testObserver2);
+ watchdog.startExplicitHealthCheck(List.of(APP_B), LONG_DURATION, testObserver2);
mTestLooper.dispatchAll();
TestObserver testObserver3 = new TestObserver(OBSERVER_NAME_3);
- watchdog.registerHealthObserver(testObserver3, mTestExecutor);
- watchdog.startExplicitHealthCheck(testObserver3, List.of(APP_C), LONG_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, testObserver3);
+ watchdog.startExplicitHealthCheck(List.of(APP_C), LONG_DURATION, testObserver3);
mTestLooper.dispatchAll();
watchdog.unregisterHealthObserver(testObserver1);
@@ -1493,15 +1489,15 @@ public class PackageWatchdogTest {
public void testFailureHistoryIsPreserved() {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, List.of(APP_A), SHORT_DURATION);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(List.of(APP_A), SHORT_DURATION, observer);
for (int i = 0; i < PackageWatchdog.DEFAULT_TRIGGER_FAILURE_COUNT - 1; i++) {
watchdog.notifyPackageFailure(List.of(new VersionedPackage(APP_A, VERSION_CODE)),
PackageWatchdog.FAILURE_REASON_UNKNOWN);
}
mTestLooper.dispatchAll();
assertThat(observer.mMitigatedPackages).isEmpty();
- watchdog.startExplicitHealthCheck(observer, List.of(APP_A), LONG_DURATION);
+ watchdog.startExplicitHealthCheck(List.of(APP_A), LONG_DURATION, observer);
watchdog.notifyPackageFailure(List.of(new VersionedPackage(APP_A, VERSION_CODE)),
PackageWatchdog.FAILURE_REASON_UNKNOWN);
mTestLooper.dispatchAll();
@@ -1516,9 +1512,9 @@ public class PackageWatchdogTest {
public void testMitigationSlidingWindow() {
PackageWatchdog watchdog = createWatchdog();
TestObserver observer = new TestObserver(OBSERVER_NAME_1);
- watchdog.registerHealthObserver(observer, mTestExecutor);
- watchdog.startExplicitHealthCheck(observer, List.of(APP_A),
- PackageWatchdog.DEFAULT_OBSERVING_DURATION_MS * 2);
+ watchdog.registerHealthObserver(mTestExecutor, observer);
+ watchdog.startExplicitHealthCheck(List.of(APP_A),
+ PackageWatchdog.DEFAULT_OBSERVING_DURATION_MS * 2, observer);
raiseFatalFailureAndDispatch(watchdog, Arrays.asList(new VersionedPackage(APP_A,
diff --git a/tests/inputmethod/ConcurrentMultiSessionImeTest/Android.bp b/tests/inputmethod/ConcurrentMultiSessionImeTest/Android.bp
index 44aa4028c916..370c0048d9a9 100644
--- a/tests/inputmethod/ConcurrentMultiSessionImeTest/Android.bp
+++ b/tests/inputmethod/ConcurrentMultiSessionImeTest/Android.bp
@@ -38,6 +38,9 @@ android_test {
],
test_suites: [
"general-tests",
+ // This is an equivalent of general-tests for automotive.
+ // It helps manage the build time on automotive branches.
+ "automotive-general-tests",
],
sdk_version: "test_current",