diff options
| author | 2023-11-07 16:55:14 +0000 | |
|---|---|---|
| committer | 2023-11-07 16:55:14 +0000 | |
| commit | 70d13a4b58bd2e0e1ec8a13e4771bc10892bc6f9 (patch) | |
| tree | c6fc1f5d6d9fb610d5ad5d0d4b235969f40fc5d7 | |
| parent | 512cf072b4b9efe2dc9971100e55d9b9676b4cf6 (diff) | |
| parent | 01e9ae197843d82a7e5f54140f77e172ed2404a1 (diff) | |
Merge changes I08486d18,I2dfc90dd,I2dfc90dd into main
* changes:
  Split IME tests into 2 groups to adhere to runtime SLO
  Format code according to linter rules
  Split flicker tests into completely independent folders, which can be transferred to the respective teams.
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/Android.bp | 34 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/AndroidManifest.xml (renamed from tests/FlickerTests/manifests/AndroidManifest.xml) | 7 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/AndroidTestTemplate.xml | 90 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/res/anim/show_hide_show_3000ms.xml | 31 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/res/xml/network_security_config.xml (renamed from tests/FlickerTests/manifests/AndroidManifestOther.xml) | 14 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/ActivityEmbeddingTestBase.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/ActivityEmbeddingTestBase.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/close/CloseSecondaryActivityInSplitTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/close/CloseSecondaryActivityInSplitTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/layoutchange/HorizontalSplitChangeRatioTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/layoutchange/HorizontalSplitChangeRatioTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/MainActivityStartsSecondaryWithAlwaysExpandTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/MainActivityStartsSecondaryWithAlwaysExpandTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingPlaceholderSplitTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingPlaceholderSplitTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingSecondaryToSplitTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingSecondaryToSplitTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenThirdActivityOverSplitTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenThirdActivityOverSplitTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenTrampolineActivityTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenTrampolineActivityTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt) | 17 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotateSplitNoChangeTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/rotation/RotateSplitNoChangeTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotationTransition.kt | 82 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rtl/RTLStartSecondaryWithPlaceholderTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/rtl/RTLStartSecondaryWithPlaceholderTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/splitscreen/EnterSystemSplitTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/splitscreen/EnterSystemSplitTest.kt) | 118 | ||||
| -rw-r--r-- | tests/FlickerTests/ActivityEmbedding/trace_config/trace_config.textproto (renamed from tests/FlickerTests/trace_config/trace_config.textproto) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Android.bp | 225 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/Android.bp | 33 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/AndroidManifest.xml | 67 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/AndroidTestTemplate.xml | 90 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/OWNERS (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/close/OWNERS) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/res/anim/show_hide_show_3000ms.xml | 31 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/res/xml/network_security_config.xml (renamed from tests/FlickerTests/manifests/AndroidManifestIme.xml) | 14 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/src/com/android/server/wm/flicker/close/CloseAppTransition.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppClose/trace_config/trace_config.textproto | 77 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/Android.bp | 69 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/AndroidManifest.xml | 67 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/AndroidTestTemplate.xml | 90 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/OWNERS (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/OWNERS) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/res/anim/show_hide_show_3000ms.xml | 31 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/res/xml/network_security_config.xml (renamed from tests/FlickerTests/manifests/AndroidManifestAppClose.xml) | 14 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/ActivityTransitionTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/ActivityTransitionTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIconColdTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIconColdTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdAfterCameraTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdAfterCameraTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIntentWarmTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIntentWarmTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenCameraFromHomeOnDoubleClickPowerButtonTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenCameraFromHomeOnDoubleClickPowerButtonTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenTransferSplashscreenAppFromLauncherTransition.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenTransferSplashscreenAppFromLauncherTransition.kt) | 3 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt) | 1 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLauncherTransition.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppFromLauncherTransition.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppTransition.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppTransition.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/AppLaunch/trace_config/trace_config.textproto | 77 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/Android.bp | 33 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/AndroidManifest.xml | 67 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/AndroidTestTemplate.xml | 90 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/res/anim/show_hide_show_3000ms.xml | 31 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/res/xml/network_security_config.xml (renamed from tests/FlickerTests/manifests/AndroidManifestAppLaunch.xml) | 14 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/Utils.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/Utils.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppBackButton.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppBackButton.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppHomeButton.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppHomeButton.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppSwipeToHome.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppSwipeToHome.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/NotificationUtils.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/NotificationUtils.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationCold.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationCold.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWarm.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWarm.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWithOverlayApp.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWithOverlayApp.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationCold.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationCold.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationWarm.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationWarm.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavLandscape.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavLandscape.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavPortrait.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavPortrait.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsBack.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsBack.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsForward.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsForward.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchFromLauncher.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchFromLauncher.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/FlickerService/trace_config/trace_config.textproto | 77 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/Android.bp | 78 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/AndroidManifest.xml | 67 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/AndroidTestTemplate.xml | 90 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/OWNERS (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/OWNERS) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/res/anim/show_hide_show_3000ms.xml | 31 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/res/xml/network_security_config.xml | 22 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeOnDismissPopupDialogTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeOnDismissPopupDialogTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeOnGoHomeTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeOnGoHomeTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartOnGoHomeTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartOnGoHomeTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartToAppOnPressBackTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartToAppOnPressBackTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToHomeOnFinishActivityTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeToHomeOnFinishActivityTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/OpenImeWindowToFixedPortraitAppTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowToFixedPortraitAppTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromFixedOrientationTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromFixedOrientationTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromOverviewTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromOverviewTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhenFocusingOnInputFieldTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeWhenFocusingOnInputFieldTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileDismissingThemedPopupDialogTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeWhileDismissingThemedPopupDialogTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/common/CommonAssertions.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/IME/trace_config/trace_config.textproto | 77 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/Android.bp | 33 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/AndroidManifest.xml | 67 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/AndroidTestTemplate.xml (renamed from tests/FlickerTests/AndroidTestTemplate.xml) | 14 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/OWNERS (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/notification/OWNERS) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/res/anim/show_hide_show_3000ms.xml | 31 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/res/xml/network_security_config.xml | 22 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/Consts.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/notification/Consts.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Notification/trace_config/trace_config.textproto | 77 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/Android.bp | 33 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/AndroidManifest.xml | 67 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/AndroidTestTemplate.xml | 90 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/OWNERS (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/OWNERS) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/res/anim/show_hide_show_3000ms.xml | 31 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/res/xml/network_security_config.xml | 22 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/QuickSwitch/trace_config/trace_config.textproto | 77 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/Android.bp | 33 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/AndroidManifest.xml | 67 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/AndroidTestTemplate.xml | 90 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/OWNERS (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/rotation/OWNERS) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/res/anim/show_hide_show_3000ms.xml | 31 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/res/xml/network_security_config.xml | 22 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/RotationTransition.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/rotation/RotationTransition.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/Rotation/trace_config/trace_config.textproto | 77 | ||||
| -rw-r--r-- | tests/FlickerTests/manifests/AndroidManifestNotification.xml | 24 | ||||
| -rw-r--r-- | tests/FlickerTests/manifests/AndroidManifestQuickswitch.xml | 24 | ||||
| -rw-r--r-- | tests/FlickerTests/manifests/AndroidManifestRotation.xml | 24 | ||||
| -rw-r--r-- | tests/FlickerTests/manifests/AndroidManifestService.xml | 24 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/Android.bp | 42 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/AppPairsHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/AppPairsHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/AssistantAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/AssistantAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/GestureHelper.java (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GestureHelper.java) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeShownOnAppStartHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeShownOnAppStartHelper.kt) | 2 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/LetterboxAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LetterboxAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt) | 14 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/TransferSplashscreenAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TransferSplashscreenAppHelper.kt) | 0 | ||||
| -rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt (renamed from tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt) | 0 | 
190 files changed, 2574 insertions, 453 deletions
diff --git a/tests/FlickerTests/ActivityEmbedding/Android.bp b/tests/FlickerTests/ActivityEmbedding/Android.bp new file mode 100644 index 000000000000..9eeec7c8ddda --- /dev/null +++ b/tests/FlickerTests/ActivityEmbedding/Android.bp @@ -0,0 +1,34 @@ +// +// Copyright (C) 2018 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 { +    // See: http://go/android-license-faq +    // A large-scale-change added 'default_applicable_licenses' to import +    // all of the 'license_kinds' from "frameworks_base_license" +    // to get the below license kinds: +    //   SPDX-license-identifier-Apache-2.0 +    default_applicable_licenses: ["frameworks_base_license"], +} + +android_test { +    name: "FlickerTestsOther", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    package_name: "com.android.server.wm.flicker", +    instrumentation_target_package: "com.android.server.wm.flicker", +    srcs: ["src/**/*"], +    static_libs: ["FlickerTestsBase"], +} diff --git a/tests/FlickerTests/manifests/AndroidManifest.xml b/tests/FlickerTests/ActivityEmbedding/AndroidManifest.xml index 6bc7cbe88589..f867ffb679c5 100644 --- a/tests/FlickerTests/manifests/AndroidManifest.xml +++ b/tests/FlickerTests/ActivityEmbedding/AndroidManifest.xml @@ -17,7 +17,7 @@  <manifest xmlns:android="http://schemas.android.com/apk/res/android"            xmlns:tools="http://schemas.android.com/tools" -          package="com.android.server.wm.flicker"> +          package="com.android.server.wm.flick">      <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/>      <!-- Read and write traces from external storage --> @@ -59,4 +59,9 @@              android:authorities="${applicationId}.androidx-startup"              tools:node="remove" />      </application> + +    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" +                     android:targetPackage="com.android.server.wm.flicker" +                     android:label="WindowManager Flicker Tests"> +    </instrumentation>  </manifest> diff --git a/tests/FlickerTests/ActivityEmbedding/AndroidTestTemplate.xml b/tests/FlickerTests/ActivityEmbedding/AndroidTestTemplate.xml new file mode 100644 index 000000000000..439cf136c220 --- /dev/null +++ b/tests/FlickerTests/ActivityEmbedding/AndroidTestTemplate.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + * Copyright 2018 Google Inc. All Rights Reserved. + --> +<configuration description="Runs WindowManager {MODULE}"> +    <option name="test-tag" value="FlickerTests"/> +    <!-- Needed for storing the perfetto trace files in the sdcard/test_results--> +    <option name="isolated-storage" value="false"/> + +    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> +        <!-- keeps the screen on during tests --> +        <option name="screen-always-on" value="on"/> +        <!-- prevents the phone from restarting --> +        <option name="force-skip-system-props" value="true"/> +        <!-- set WM tracing verbose level to all --> +        <option name="run-command" value="cmd window tracing level all"/> +        <!-- set WM tracing to frame (avoid incomplete states) --> +        <option name="run-command" value="cmd window tracing frame"/> +        <!-- ensure lock screen mode is swipe --> +        <option name="run-command" value="locksettings set-disabled false"/> +        <!-- disable betterbug as it's log collection dialogues cause flakes in e2e tests --> +        <option name="run-command" value="pm disable com.google.android.internal.betterbug"/> +        <!-- restart launcher to activate TAPL --> +        <option name="run-command" +                value="setprop ro.test_harness 1 ; am force-stop com.google.android.apps.nexuslauncher"/> +        <!-- Increase trace size: 20mb for WM and 80mb for SF --> +        <option name="run-command" value="cmd window tracing size 20480"/> +        <option name="run-command" value="su root service call SurfaceFlinger 1029 i32 81920"/> +        <!-- b/307664397 - Ensure camera has the correct permissions and doesn't show a dialog --> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.CAMERA"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.RECORD_AUDIO"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_FINE_LOCATION"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_COARSE_LOCATION"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> +        <option name="test-user-token" value="%TEST_USER%"/> +        <option name="run-command" value="rm -rf /data/user/%TEST_USER%/files/*"/> +        <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/> +        <option name="run-command" value="settings put system show_touches 1"/> +        <option name="run-command" value="settings put system pointer_location 1"/> +        <option name="teardown-command" +                value="settings delete secure show_ime_with_hard_keyboard"/> +        <option name="teardown-command" value="settings delete system show_touches"/> +        <option name="teardown-command" value="settings delete system pointer_location"/> +        <option name="teardown-command" +                value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> +        <option name="cleanup-apks" value="true"/> +        <option name="test-file-name" value="{MODULE}.apk"/> +        <option name="test-file-name" value="FlickerTestApp.apk"/> +    </target_preparer> +    <!-- Needed for pushing the trace config file --> +    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/> +    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> +        <option name="push-file" +                key="trace_config.textproto" +                value="/data/misc/perfetto-traces/trace_config.textproto" +        /> +        <!--Install the content provider automatically when we push some file in sdcard folder.--> +        <!--Needed to avoid the installation during the test suite.--> +        <option name="push-file" key="trace_config.textproto" value="/sdcard/sample.textproto"/> +    </target_preparer> +    <test class="com.android.tradefed.testtype.AndroidJUnitTest"> +        <option name="package" value="{PACKAGE}"/> +        <option name="shell-timeout" value="6600s"/> +        <option name="test-timeout" value="6600s"/> +        <option name="hidden-api-checks" value="false"/> +        <option name="device-listeners" value="android.device.collectors.PerfettoListener"/> +        <!-- PerfettoListener related arguments --> +        <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/> +        <option name="instrumentation-arg" +                key="perfetto_config_file" +                value="trace_config.textproto" +        /> +        <option name="instrumentation-arg" key="per_run" value="true"/> +    </test> +    <!-- Needed for pulling the collected trace config on to the host --> +    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> +        <option name="pull-pattern-keys" value="perfetto_file_path"/> +        <option name="directory-keys" +                value="/data/user/0/com.android.server.wm.flicker/files"/> +        <option name="collect-on-run-ended-only" value="true"/> +        <option name="clean-up" value="true"/> +    </metrics_collector> +</configuration> diff --git a/tests/FlickerTests/ActivityEmbedding/res/anim/show_hide_show_3000ms.xml b/tests/FlickerTests/ActivityEmbedding/res/anim/show_hide_show_3000ms.xml new file mode 100644 index 000000000000..7b3f07e3a2f5 --- /dev/null +++ b/tests/FlickerTests/ActivityEmbedding/res/anim/show_hide_show_3000ms.xml @@ -0,0 +1,31 @@ +<!-- +  ~ Copyright (C) 2022 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. +  --> + +<set +    xmlns:android="http://schemas.android.com/apk/res/android" +    android:fillAfter="true"> + +    <alpha +        android:fromAlpha="1.0" +        android:toAlpha="0.0" +        android:duration="1000" /> + +    <alpha +        android:startOffset="2000" +        android:fromAlpha="1.0" +        android:toAlpha="1.0" +        android:duration="1000" /> +</set>
\ No newline at end of file diff --git a/tests/FlickerTests/manifests/AndroidManifestOther.xml b/tests/FlickerTests/ActivityEmbedding/res/xml/network_security_config.xml index 47749b8133b1..4bd9ca049f55 100644 --- a/tests/FlickerTests/manifests/AndroidManifestOther.xml +++ b/tests/FlickerTests/ActivityEmbedding/res/xml/network_security_config.xml @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?>  <!--    ~ Copyright (C) 2023 The Android Open Source Project    ~ @@ -14,11 +15,8 @@    ~ limitations under the License.    --> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" -    package="com.android.server.wm.flicker"> - -    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" -                     android:targetPackage="com.android.server.wm.flicker" -                     android:label="WindowManager Flicker Tests"> -    </instrumentation> -</manifest> +<network-security-config> +    <domain-config cleartextTrafficPermitted="true"> +        <domain includeSubdomains="true">localhost</domain> +    </domain-config> +</network-security-config> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/ActivityEmbeddingTestBase.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/ActivityEmbeddingTestBase.kt index 6209a0838d9b..6209a0838d9b 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/ActivityEmbeddingTestBase.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/ActivityEmbeddingTestBase.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/close/CloseSecondaryActivityInSplitTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/close/CloseSecondaryActivityInSplitTest.kt index 0c36c59a8a83..0c36c59a8a83 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/close/CloseSecondaryActivityInSplitTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/close/CloseSecondaryActivityInSplitTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/layoutchange/HorizontalSplitChangeRatioTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/layoutchange/HorizontalSplitChangeRatioTest.kt index adff5792c42d..955e801e7e0a 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/layoutchange/HorizontalSplitChangeRatioTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/layoutchange/HorizontalSplitChangeRatioTest.kt @@ -23,9 +23,9 @@ import android.tools.device.flicker.legacy.FlickerBuilder  import android.tools.device.flicker.legacy.LegacyFlickerTest  import android.tools.device.flicker.legacy.LegacyFlickerTestFactory  import androidx.test.filters.FlakyTest +import androidx.test.filters.RequiresDevice  import com.android.server.wm.flicker.activityembedding.ActivityEmbeddingTestBase  import com.android.server.wm.flicker.helpers.ActivityEmbeddingAppHelper -import androidx.test.filters.RequiresDevice  import org.junit.FixMethodOrder  import org.junit.Test  import org.junit.runner.RunWith diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/MainActivityStartsSecondaryWithAlwaysExpandTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/MainActivityStartsSecondaryWithAlwaysExpandTest.kt index ce9c337ff9bd..ce9c337ff9bd 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/MainActivityStartsSecondaryWithAlwaysExpandTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/MainActivityStartsSecondaryWithAlwaysExpandTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingPlaceholderSplitTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingPlaceholderSplitTest.kt index 59ff0c65c4fc..59ff0c65c4fc 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingPlaceholderSplitTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingPlaceholderSplitTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingSecondaryToSplitTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingSecondaryToSplitTest.kt index 365782012c54..365782012c54 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingSecondaryToSplitTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenActivityEmbeddingSecondaryToSplitTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenThirdActivityOverSplitTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenThirdActivityOverSplitTest.kt index 9f9fc23081c5..9f9fc23081c5 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenThirdActivityOverSplitTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenThirdActivityOverSplitTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenTrampolineActivityTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenTrampolineActivityTest.kt index 30e833f433a8..30e833f433a8 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/open/OpenTrampolineActivityTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenTrampolineActivityTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt index 47d6d235848f..790da34b1b08 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt @@ -36,9 +36,8 @@ import org.junit.runners.Parameterized  /**   * Test launching a secondary Activity into Picture-In-Picture mode.   * - * Setup: Start from a split A|B. - * Transition: B enters PIP, observe the window first goes fullscreen then shrink to the bottom - * right corner on screen. + * Setup: Start from a split A|B. Transition: B enters PIP, observe the window first goes fullscreen + * then shrink to the bottom right corner on screen.   *   * To run this test: `atest FlickerTestsOther:SecondaryActivityEnterPipTest`   */ @@ -64,16 +63,10 @@ class SecondaryActivityEnterPipTest(flicker: LegacyFlickerTest) :          }      } -    /** -     * We expect the background layer to be visible during this transition. -     */ -    @Presubmit -    @Test -    override fun backgroundLayerNeverVisible(): Unit {} +    /** We expect the background layer to be visible during this transition. */ +    @Presubmit @Test override fun backgroundLayerNeverVisible() {} -    /** -     * Main and secondary activity start from a split each taking half of the screen. -     */ +    /** Main and secondary activity start from a split each taking half of the screen. */      @Presubmit      @Test      fun layersStartFromEqualSplit() { diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/rotation/RotateSplitNoChangeTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotateSplitNoChangeTest.kt index 4f7d8a474da1..e8389d1917d8 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/rotation/RotateSplitNoChangeTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotateSplitNoChangeTest.kt @@ -23,9 +23,7 @@ import android.tools.device.flicker.legacy.FlickerBuilder  import android.tools.device.flicker.legacy.LegacyFlickerTest  import android.tools.device.flicker.legacy.LegacyFlickerTestFactory  import androidx.test.filters.RequiresDevice -import com.android.server.wm.flicker.activityembedding.ActivityEmbeddingTestBase  import com.android.server.wm.flicker.helpers.ActivityEmbeddingAppHelper -import com.android.server.wm.flicker.rotation.RotationTransition  import org.junit.FixMethodOrder  import org.junit.Test  import org.junit.runner.RunWith diff --git a/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotationTransition.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotationTransition.kt new file mode 100644 index 000000000000..1123c5bb6ea8 --- /dev/null +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotationTransition.kt @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2021 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 com.android.server.wm.flicker.activityembedding.rotation + +import android.platform.test.annotations.Presubmit +import android.tools.common.traces.component.ComponentNameMatcher +import android.tools.device.apphelpers.StandardAppHelper +import android.tools.device.flicker.legacy.FlickerBuilder +import android.tools.device.flicker.legacy.LegacyFlickerTest +import com.android.server.wm.flicker.BaseTest +import com.android.server.wm.flicker.helpers.setRotation +import org.junit.Test + +/** Base class for app rotation tests */ +abstract class RotationTransition(flicker: LegacyFlickerTest) : BaseTest(flicker) { +    protected abstract val testApp: StandardAppHelper + +    /** {@inheritDoc} */ +    override val transition: FlickerBuilder.() -> Unit = { +        setup { this.setRotation(flicker.scenario.startRotation) } +        teardown { testApp.exit(wmHelper) } +        transitions { this.setRotation(flicker.scenario.endRotation) } +    } + +    /** {@inheritDoc} */ +    @Presubmit +    @Test +    override fun visibleLayersShownMoreThanOneConsecutiveEntry() { +        flicker.assertLayers { +            this.visibleLayersShownMoreThanOneConsecutiveEntry( +                ignoreLayers = +                    listOf( +                        ComponentNameMatcher.SPLASH_SCREEN, +                        ComponentNameMatcher.SNAPSHOT, +                        ComponentNameMatcher("", "SecondaryHomeHandle") +                    ) +            ) +        } +    } + +    /** Checks that [testApp] layer covers the entire screen at the start of the transition */ +    @Presubmit +    @Test +    open fun appLayerRotates_StartingPos() { +        flicker.assertLayersStart { +            this.entry.displays.map { display -> +                this.visibleRegion(testApp).coversExactly(display.layerStackSpace) +            } +        } +    } + +    /** Checks that [testApp] layer covers the entire screen at the end of the transition */ +    @Presubmit +    @Test +    open fun appLayerRotates_EndingPos() { +        flicker.assertLayersEnd { +            this.entry.displays.map { display -> +                this.visibleRegion(testApp).coversExactly(display.layerStackSpace) +            } +        } +    } + +    override fun cujCompleted() { +        super.cujCompleted() +        appLayerRotates_StartingPos() +        appLayerRotates_EndingPos() +    } +} diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/rtl/RTLStartSecondaryWithPlaceholderTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rtl/RTLStartSecondaryWithPlaceholderTest.kt index 6be78f829b34..6be78f829b34 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/rtl/RTLStartSecondaryWithPlaceholderTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rtl/RTLStartSecondaryWithPlaceholderTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/splitscreen/EnterSystemSplitTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/splitscreen/EnterSystemSplitTest.kt index 93a5bf5bcb4e..576eec847066 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/splitscreen/EnterSystemSplitTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/splitscreen/EnterSystemSplitTest.kt @@ -24,8 +24,8 @@ import android.tools.device.flicker.legacy.FlickerBuilder  import android.tools.device.flicker.legacy.LegacyFlickerTest  import android.tools.device.flicker.legacy.LegacyFlickerTestFactory  import android.tools.device.traces.parsers.toFlickerComponent -import com.android.server.wm.flicker.helpers.ActivityEmbeddingAppHelper  import com.android.server.wm.flicker.activityembedding.ActivityEmbeddingTestBase +import com.android.server.wm.flicker.helpers.ActivityEmbeddingAppHelper  import com.android.server.wm.flicker.testapp.ActivityOptions  import com.android.wm.shell.flicker.utils.SPLIT_SCREEN_DIVIDER_COMPONENT  import com.android.wm.shell.flicker.utils.SplitScreenUtils @@ -39,11 +39,11 @@ import org.junit.runner.RunWith  import org.junit.runners.MethodSorters  import org.junit.runners.Parameterized -/*** +/**   * Test entering System SplitScreen with Activity Embedding Split and another app.   * - * Setup: Launch A|B in split and secondaryApp, return to home. - * Transitions: Let AE Split A|B enter splitscreen with secondaryApp. Resulting in A|B|secondaryApp. + * Setup: Launch A|B in split and secondaryApp, return to home. Transitions: Let AE Split A|B enter + * splitscreen with secondaryApp. Resulting in A|B|secondaryApp.   *   * To run this test: `atest FlickerTestsOther:EnterSystemSplitTest`   */ @@ -51,8 +51,7 @@ import org.junit.runners.Parameterized  @RunWith(Parameterized::class)  @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)  @FixMethodOrder(MethodSorters.NAME_ASCENDING) -class EnterSystemSplitTest(flicker: LegacyFlickerTest) : -        ActivityEmbeddingTestBase(flicker) { +class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBase(flicker) {      private val secondaryApp = SplitScreenUtils.getPrimary(instrumentation)      override val transition: FlickerBuilder.() -> Unit = { @@ -62,17 +61,22 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) :              secondaryApp.launchViaIntent(wmHelper)              tapl.goHome()              wmHelper -                    .StateSyncBuilder() -                    .withAppTransitionIdle() -                    .withHomeActivityVisible() -                    .waitForAndVerify() +                .StateSyncBuilder() +                .withAppTransitionIdle() +                .withHomeActivityVisible() +                .waitForAndVerify()              startDisplayBounds = -                    wmHelper.currentState.layerState.physicalDisplayBounds -                        ?: error("Display not found") +                wmHelper.currentState.layerState.physicalDisplayBounds ?: error("Display not found")          }          transitions { -            SplitScreenUtils.enterSplit(wmHelper, tapl, device, testApp, secondaryApp, -                flicker.scenario.startRotation) +            SplitScreenUtils.enterSplit( +                wmHelper, +                tapl, +                device, +                testApp, +                secondaryApp, +                flicker.scenario.startRotation +            )              SplitScreenUtils.waitForSplitComplete(wmHelper, testApp, secondaryApp)          }      } @@ -85,7 +89,10 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) :      @Test      fun activityEmbeddingSplitLayerBecomesVisible() {          flicker.splitAppLayerBoundsIsVisibleAtEnd( -                testApp, landscapePosLeft = tapl.isTablet, portraitPosTop = false) +            testApp, +            landscapePosLeft = tapl.isTablet, +            portraitPosTop = false +        )      }      @Presubmit @@ -96,7 +103,10 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) :      @Test      fun secondaryLayerBecomesVisible() {          flicker.splitAppLayerBoundsIsVisibleAtEnd( -                secondaryApp, landscapePosLeft = !tapl.isTablet, portraitPosTop = true) +            secondaryApp, +            landscapePosLeft = !tapl.isTablet, +            portraitPosTop = true +        )      }      @Presubmit @@ -105,73 +115,73 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) :      /**       * After the transition there should be both ActivityEmbedding activities, -     * SplitScreenPrimaryActivity and the system split divider on screen. -     * Verify the layers are in expected sizes. +     * SplitScreenPrimaryActivity and the system split divider on screen. Verify the layers are in +     * expected sizes.       */      @Presubmit      @Test      fun activityEmbeddingSplitSurfaceAreEven() {          flicker.assertLayersEnd {              val leftAELayerRegion = -                    visibleRegion(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT) +                visibleRegion(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT)              val rightAELayerRegion = -                    visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) +                visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT)              val secondaryAppLayerRegion = -                    visibleRegion( -                            ActivityOptions.SplitScreen.Primary.COMPONENT.toFlickerComponent()) +                visibleRegion(ActivityOptions.SplitScreen.Primary.COMPONENT.toFlickerComponent())              val systemDivider = visibleRegion(SPLIT_SCREEN_DIVIDER_COMPONENT)              leftAELayerRegion -                    .plus(rightAELayerRegion.region) -                    .plus(secondaryAppLayerRegion.region) -                    .plus(systemDivider.region) -                    .coversExactly(startDisplayBounds) +                .plus(rightAELayerRegion.region) +                .plus(secondaryAppLayerRegion.region) +                .plus(systemDivider.region) +                .coversExactly(startDisplayBounds)              check { "ActivityEmbeddingSplitHeight" } -                    .that(leftAELayerRegion.region.height) -                    .isEqual(rightAELayerRegion.region.height) +                .that(leftAELayerRegion.region.height) +                .isEqual(rightAELayerRegion.region.height)              check { "SystemSplitHeight" } -                    .that(rightAELayerRegion.region.height) -                    .isEqual(secondaryAppLayerRegion.region.height) +                .that(rightAELayerRegion.region.height) +                .isEqual(secondaryAppLayerRegion.region.height)              // TODO(b/292283182): Remove this special case handling.              check { "ActivityEmbeddingSplitWidth" } -                    .that(Math.abs( -                            leftAELayerRegion.region.width - rightAELayerRegion.region.width)) -                    .isLower(2) +                .that(Math.abs(leftAELayerRegion.region.width - rightAELayerRegion.region.width)) +                .isLower(2)              check { "SystemSplitWidth" } -                    .that(Math.abs(secondaryAppLayerRegion.region.width - -                            2 * rightAELayerRegion.region.width)) -                    .isLower(2) +                .that( +                    Math.abs( +                        secondaryAppLayerRegion.region.width - 2 * rightAELayerRegion.region.width +                    ) +                ) +                .isLower(2)          }      } -    /** -     * Verify the windows are in expected sizes. -     */ +    /** Verify the windows are in expected sizes. */      @Presubmit      @Test      fun activityEmbeddingSplitWindowsAreEven() {          flicker.assertWmEnd {              val leftAEWindowRegion = -                    visibleRegion(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT) +                visibleRegion(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT)              val rightAEWindowRegion = -                    visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) +                visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT)              // There's no window for the divider bar.              val secondaryAppLayerRegion = -                    visibleRegion( -                            ActivityOptions.SplitScreen.Primary.COMPONENT.toFlickerComponent()) +                visibleRegion(ActivityOptions.SplitScreen.Primary.COMPONENT.toFlickerComponent())              check { "ActivityEmbeddingSplitHeight" } -                    .that(leftAEWindowRegion.region.height) -                    .isEqual(rightAEWindowRegion.region.height) +                .that(leftAEWindowRegion.region.height) +                .isEqual(rightAEWindowRegion.region.height)              check { "SystemSplitHeight" } -                    .that(rightAEWindowRegion.region.height) -                    .isEqual(secondaryAppLayerRegion.region.height) +                .that(rightAEWindowRegion.region.height) +                .isEqual(secondaryAppLayerRegion.region.height)              check { "ActivityEmbeddingSplitWidth" } -                    .that(Math.abs( -                            leftAEWindowRegion.region.width - rightAEWindowRegion.region.width)) -                    .isLower(2) +                .that(Math.abs(leftAEWindowRegion.region.width - rightAEWindowRegion.region.width)) +                .isLower(2)              check { "SystemSplitWidth" } -                    .that(Math.abs(secondaryAppLayerRegion.region.width - -                            2 * rightAEWindowRegion.region.width)) -                    .isLower(2) +                .that( +                    Math.abs( +                        secondaryAppLayerRegion.region.width - 2 * rightAEWindowRegion.region.width +                    ) +                ) +                .isLower(2)          }      } @@ -191,4 +201,4 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) :          @JvmStatic          fun getParams() = LegacyFlickerTestFactory.nonRotationTests()      } -}
\ No newline at end of file +} diff --git a/tests/FlickerTests/trace_config/trace_config.textproto b/tests/FlickerTests/ActivityEmbedding/trace_config/trace_config.textproto index c9a35aca9085..c9a35aca9085 100644 --- a/tests/FlickerTests/trace_config/trace_config.textproto +++ b/tests/FlickerTests/ActivityEmbedding/trace_config/trace_config.textproto diff --git a/tests/FlickerTests/Android.bp b/tests/FlickerTests/Android.bp index 3d49d81a0f5a..514f89511fb1 100644 --- a/tests/FlickerTests/Android.bp +++ b/tests/FlickerTests/Android.bp @@ -24,75 +24,14 @@ package {  }  filegroup { -    name: "FlickerTestsBase-src", -    srcs: ["src/com/android/server/wm/flicker/*.kt"], -} - -filegroup { -    name: "FlickerTestsAppClose-src", -    srcs: ["src/**/close/*.kt"], -} - -filegroup { -    name: "FlickerTestsActivityEmbedding-src", -    srcs: [ -        "src/**/activityembedding/*.kt", -        "src/**/activityembedding/open/*.kt", -        "src/**/activityembedding/close/*.kt", -        "src/**/activityembedding/layoutchange/*.kt", -        "src/**/activityembedding/pip/*.kt", -        "src/**/activityembedding/rotation/*.kt", -        "src/**/activityembedding/rtl/*.kt", -        "src/**/activityembedding/splitscreen/*.kt", -    ], -} - -filegroup { -    name: "FlickerTestsIme-src", -    srcs: ["src/**/ime/*.kt"], -} - -filegroup { -    name: "FlickerTestsAppLaunchCommon-src", -    srcs: ["src/**/launch/common/*.kt"], -} - -filegroup { -    name: "FlickerTestsAppLaunch1-src", -    srcs: ["src/**/launch/OpenApp*.kt"], -} - -filegroup { -    name: "FlickerTestsAppLaunch2-src", -    srcs: ["src/**/launch/*.kt"], -} - -filegroup { -    name: "FlickerTestsNotification-src", -    srcs: ["src/**/notification/*.kt"], -} - -filegroup { -    name: "FlickerTestsQuickswitch-src", -    srcs: ["src/**/quickswitch/*.kt"], -} - -filegroup { -    name: "FlickerTestsRotation-src", -    srcs: ["src/**/rotation/*.kt"], -} - -filegroup {      name: "FlickerServiceTests-src",      srcs: [ -        "src/com/android/server/wm/flicker/service/**/*.kt", +        "src/**/*",      ],  }  java_defaults {      name: "FlickerTestsDefault", -    manifest: "manifests/AndroidManifest.xml", -    test_config_template: "AndroidTestTemplate.xml",      platform_apis: true,      certificate: "platform",      optimize: { @@ -116,139 +55,6 @@ java_defaults {      ],  } -android_test { -    name: "FlickerTestsOther", -    defaults: ["FlickerTestsDefault"], -    additional_manifests: ["manifests/AndroidManifestOther.xml"], -    package_name: "com.android.server.wm.flicker", -    instrumentation_target_package: "com.android.server.wm.flicker", -    srcs: [ -        "src/**/*.java", -        "src/**/*.kt", -    ], -    exclude_srcs: [ -        ":FlickerTestsAppClose-src", -        ":FlickerTestsIme-src", -        ":FlickerTestsAppLaunch1-src", -        ":FlickerTestsAppLaunch2-src", -        ":FlickerTestsQuickswitch-src", -        ":FlickerTestsRotation-src", -        ":FlickerTestsNotification-src", -        ":FlickerServiceTests-src", -    ], -} - -android_test { -    name: "FlickerTestsAppClose", -    defaults: ["FlickerTestsDefault"], -    additional_manifests: ["manifests/AndroidManifestAppClose.xml"], -    package_name: "com.android.server.wm.flicker.close", -    instrumentation_target_package: "com.android.server.wm.flicker.close", -    srcs: [ -        ":FlickerTestsBase-src", -        ":FlickerTestsAppClose-src", -    ], -    exclude_srcs: [ -        ":FlickerTestsActivityEmbedding-src", -    ], -} - -android_test { -    name: "FlickerTestsIme", -    defaults: ["FlickerTestsDefault"], -    additional_manifests: ["manifests/AndroidManifestIme.xml"], -    package_name: "com.android.server.wm.flicker.ime", -    instrumentation_target_package: "com.android.server.wm.flicker.ime", -    srcs: [ -        ":FlickerTestsBase-src", -        ":FlickerTestsIme-src", -    ], -} - -android_test { -    name: "FlickerTestsAppLaunch1", -    defaults: ["FlickerTestsDefault"], -    additional_manifests: ["manifests/AndroidManifestAppLaunch.xml"], -    package_name: "com.android.server.wm.flicker.launch", -    instrumentation_target_package: "com.android.server.wm.flicker.launch", -    srcs: [ -        ":FlickerTestsBase-src", -        ":FlickerTestsAppLaunchCommon-src", -        ":FlickerTestsAppLaunch1-src", -    ], -    exclude_srcs: [ -        ":FlickerTestsActivityEmbedding-src", -    ], -} - -android_test { -    name: "FlickerTestsAppLaunch2", -    defaults: ["FlickerTestsDefault"], -    additional_manifests: ["manifests/AndroidManifestAppLaunch.xml"], -    package_name: "com.android.server.wm.flicker.launch", -    instrumentation_target_package: "com.android.server.wm.flicker.launch", -    srcs: [ -        ":FlickerTestsBase-src", -        ":FlickerTestsAppLaunchCommon-src", -        ":FlickerTestsAppLaunch2-src", -    ], -    exclude_srcs: [ -        ":FlickerTestsActivityEmbedding-src", -        ":FlickerTestsAppLaunch1-src", -    ], -} - -android_test { -    name: "FlickerTestsNotification", -    defaults: ["FlickerTestsDefault"], -    additional_manifests: ["manifests/AndroidManifestNotification.xml"], -    package_name: "com.android.server.wm.flicker.notification", -    instrumentation_target_package: "com.android.server.wm.flicker.notification", -    srcs: [ -        ":FlickerTestsBase-src", -        ":FlickerTestsNotification-src", -    ], -} - -android_test { -    name: "FlickerTestsQuickswitch", -    defaults: ["FlickerTestsDefault"], -    additional_manifests: ["manifests/AndroidManifestQuickswitch.xml"], -    package_name: "com.android.server.wm.flicker.quickswitch", -    instrumentation_target_package: "com.android.server.wm.flicker.quickswitch", -    srcs: [ -        ":FlickerTestsBase-src", -        ":FlickerTestsQuickswitch-src", -    ], -} - -android_test { -    name: "FlickerTestsRotation", -    defaults: ["FlickerTestsDefault"], -    additional_manifests: ["manifests/AndroidManifestRotation.xml"], -    package_name: "com.android.server.wm.flicker.rotation", -    instrumentation_target_package: "com.android.server.wm.flicker.rotation", -    srcs: [ -        ":FlickerTestsBase-src", -        ":FlickerTestsRotation-src", -    ], -    exclude_srcs: [ -        ":FlickerTestsActivityEmbedding-src", -    ], -} - -android_test { -    name: "FlickerServiceTests", -    defaults: ["FlickerTestsDefault"], -    additional_manifests: ["manifests/AndroidManifestService.xml"], -    package_name: "com.android.server.wm.flicker.service", -    instrumentation_target_package: "com.android.server.wm.flicker.service", -    srcs: [ -        ":FlickerTestsBase-src", -        ":FlickerServiceTests-src", -    ], -} -  java_library {      name: "wm-flicker-common-assertions",      platform_apis: true, @@ -259,9 +65,6 @@ java_library {          "src/**/*Assertions.java",          "src/**/*Assertions.kt",      ], -    exclude_srcs: [ -        "**/helpers/*", -    ],      static_libs: [          "flickerlib",          "flickerlib-helpers", @@ -270,26 +73,6 @@ java_library {      ],  } -java_library { -    name: "wm-flicker-common-app-helpers", -    platform_apis: true, -    optimize: { -        enabled: false, -    }, -    srcs: [ -        "**/helpers/*", -    ], -    static_libs: [ -        "flickertestapplib", -        "flickerlib", -        "flickerlib-apphelpers", -        "flickerlib-helpers", -        "truth", -        "app-helpers-core", -        "wm-flicker-window-extensions", -    ], -} -  android_library_import {      name: "wm-flicker-window-extensions_nodeps",      aars: ["libs/window-extensions-release.aar"], @@ -304,3 +87,9 @@ java_library {      ],      installable: false,  } + +java_library { +    name: "FlickerTestsBase", +    defaults: ["FlickerTestsDefault"], +    srcs: ["src/**/*"], +} diff --git a/tests/FlickerTests/AppClose/Android.bp b/tests/FlickerTests/AppClose/Android.bp new file mode 100644 index 000000000000..151d12f2a8ca --- /dev/null +++ b/tests/FlickerTests/AppClose/Android.bp @@ -0,0 +1,33 @@ +// +// Copyright (C) 2018 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 { +    // See: http://go/android-license-faq +    // A large-scale-change added 'default_applicable_licenses' to import +    // all of the 'license_kinds' from "frameworks_base_license" +    // to get the below license kinds: +    //   SPDX-license-identifier-Apache-2.0 +    default_applicable_licenses: ["frameworks_base_license"], +} + +android_test { +    name: "FlickerTestsAppClose", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: ["src/**/*"], +    static_libs: ["FlickerTestsBase"], +} diff --git a/tests/FlickerTests/AppClose/AndroidManifest.xml b/tests/FlickerTests/AppClose/AndroidManifest.xml new file mode 100644 index 000000000000..e75e178b388c --- /dev/null +++ b/tests/FlickerTests/AppClose/AndroidManifest.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" +          xmlns:tools="http://schemas.android.com/tools" +          package="com.android.server.wm.flicker.close"> + +    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/> +    <!-- Read and write traces from external storage --> +    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> +    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> +    <!-- Allow the test to write directly to /sdcard/ --> +    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> +    <!-- Write secure settings --> +    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> +    <!-- Capture screen contents --> +    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" /> +    <!-- Enable / Disable tracing !--> +    <uses-permission android:name="android.permission.DUMP" /> +    <!-- Force-stop test apps --> +    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> +    <!-- Run layers trace --> +    <uses-permission android:name="android.permission.HARDWARE_TEST"/> +    <!-- Capture screen recording --> +    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/> +    <!-- Workaround grant runtime permission exception from b/152733071 --> +    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> +    <uses-permission android:name="android.permission.READ_LOGS"/> +    <!-- ATM.removeRootTasksWithActivityTypes() --> +    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> +    <!-- ActivityOptions.makeCustomTaskAnimation() --> +    <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> +    <!-- Allow the test to connect to perfetto trace processor --> +    <uses-permission android:name="android.permission.INTERNET"/> +    <!-- Allow the test to write directly to /sdcard/ and connect to trace processor --> +    <application android:requestLegacyExternalStorage="true" +                 android:networkSecurityConfig="@xml/network_security_config" +                 android:largeHeap="true"> +        <uses-library android:name="android.test.runner"/> +        <uses-library android:name="androidx.window.extensions" android:required="false"/> + +        <!-- (b/197936012) Remove startup provider due to test timeout issue --> +        <provider +            android:name="androidx.startup.InitializationProvider" +            android:authorities="${applicationId}.androidx-startup" +            tools:node="remove" /> +    </application> + +    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" +                     android:targetPackage="com.android.server.wm.flicker.close" +                     android:label="WindowManager Flicker Tests"> +    </instrumentation> +</manifest> diff --git a/tests/FlickerTests/AppClose/AndroidTestTemplate.xml b/tests/FlickerTests/AppClose/AndroidTestTemplate.xml new file mode 100644 index 000000000000..4b6224efaf60 --- /dev/null +++ b/tests/FlickerTests/AppClose/AndroidTestTemplate.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + * Copyright 2018 Google Inc. All Rights Reserved. + --> +<configuration description="Runs WindowManager {MODULE}"> +    <option name="test-tag" value="FlickerTests"/> +    <!-- Needed for storing the perfetto trace files in the sdcard/test_results--> +    <option name="isolated-storage" value="false"/> + +    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> +        <!-- keeps the screen on during tests --> +        <option name="screen-always-on" value="on"/> +        <!-- prevents the phone from restarting --> +        <option name="force-skip-system-props" value="true"/> +        <!-- set WM tracing verbose level to all --> +        <option name="run-command" value="cmd window tracing level all"/> +        <!-- set WM tracing to frame (avoid incomplete states) --> +        <option name="run-command" value="cmd window tracing frame"/> +        <!-- ensure lock screen mode is swipe --> +        <option name="run-command" value="locksettings set-disabled false"/> +        <!-- disable betterbug as it's log collection dialogues cause flakes in e2e tests --> +        <option name="run-command" value="pm disable com.google.android.internal.betterbug"/> +        <!-- restart launcher to activate TAPL --> +        <option name="run-command" +                value="setprop ro.test_harness 1 ; am force-stop com.google.android.apps.nexuslauncher"/> +        <!-- Increase trace size: 20mb for WM and 80mb for SF --> +        <option name="run-command" value="cmd window tracing size 20480"/> +        <option name="run-command" value="su root service call SurfaceFlinger 1029 i32 81920"/> +        <!-- b/307664397 - Ensure camera has the correct permissions and doesn't show a dialog --> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.CAMERA"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.RECORD_AUDIO"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_FINE_LOCATION"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_COARSE_LOCATION"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> +        <option name="test-user-token" value="%TEST_USER%"/> +        <option name="run-command" value="rm -rf /data/user/%TEST_USER%/files/*"/> +        <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/> +        <option name="run-command" value="settings put system show_touches 1"/> +        <option name="run-command" value="settings put system pointer_location 1"/> +        <option name="teardown-command" +                value="settings delete secure show_ime_with_hard_keyboard"/> +        <option name="teardown-command" value="settings delete system show_touches"/> +        <option name="teardown-command" value="settings delete system pointer_location"/> +        <option name="teardown-command" +                value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> +        <option name="cleanup-apks" value="true"/> +        <option name="test-file-name" value="{MODULE}.apk"/> +        <option name="test-file-name" value="FlickerTestApp.apk"/> +    </target_preparer> +    <!-- Needed for pushing the trace config file --> +    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/> +    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> +        <option name="push-file" +                key="trace_config.textproto" +                value="/data/misc/perfetto-traces/trace_config.textproto" +        /> +        <!--Install the content provider automatically when we push some file in sdcard folder.--> +        <!--Needed to avoid the installation during the test suite.--> +        <option name="push-file" key="trace_config.textproto" value="/sdcard/sample.textproto"/> +    </target_preparer> +    <test class="com.android.tradefed.testtype.AndroidJUnitTest"> +        <option name="package" value="{PACKAGE}"/> +        <option name="shell-timeout" value="6600s"/> +        <option name="test-timeout" value="6600s"/> +        <option name="hidden-api-checks" value="false"/> +        <option name="device-listeners" value="android.device.collectors.PerfettoListener"/> +        <!-- PerfettoListener related arguments --> +        <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/> +        <option name="instrumentation-arg" +                key="perfetto_config_file" +                value="trace_config.textproto" +        /> +        <option name="instrumentation-arg" key="per_run" value="true"/> +    </test> +    <!-- Needed for pulling the collected trace config on to the host --> +    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> +        <option name="pull-pattern-keys" value="perfetto_file_path"/> +        <option name="directory-keys" +                value="/data/user/0/com.android.server.wm.flicker.close/files"/> +        <option name="collect-on-run-ended-only" value="true"/> +        <option name="clean-up" value="true"/> +    </metrics_collector> +</configuration> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/close/OWNERS b/tests/FlickerTests/AppClose/OWNERS index f7c0a87f5dac..f7c0a87f5dac 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/close/OWNERS +++ b/tests/FlickerTests/AppClose/OWNERS diff --git a/tests/FlickerTests/AppClose/res/anim/show_hide_show_3000ms.xml b/tests/FlickerTests/AppClose/res/anim/show_hide_show_3000ms.xml new file mode 100644 index 000000000000..7b3f07e3a2f5 --- /dev/null +++ b/tests/FlickerTests/AppClose/res/anim/show_hide_show_3000ms.xml @@ -0,0 +1,31 @@ +<!-- +  ~ Copyright (C) 2022 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. +  --> + +<set +    xmlns:android="http://schemas.android.com/apk/res/android" +    android:fillAfter="true"> + +    <alpha +        android:fromAlpha="1.0" +        android:toAlpha="0.0" +        android:duration="1000" /> + +    <alpha +        android:startOffset="2000" +        android:fromAlpha="1.0" +        android:toAlpha="1.0" +        android:duration="1000" /> +</set>
\ No newline at end of file diff --git a/tests/FlickerTests/manifests/AndroidManifestIme.xml b/tests/FlickerTests/AppClose/res/xml/network_security_config.xml index abd03af4888a..4bd9ca049f55 100644 --- a/tests/FlickerTests/manifests/AndroidManifestIme.xml +++ b/tests/FlickerTests/AppClose/res/xml/network_security_config.xml @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?>  <!--    ~ Copyright (C) 2023 The Android Open Source Project    ~ @@ -14,11 +15,8 @@    ~ limitations under the License.    --> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" -    package="com.android.server.wm.flicker.ime"> - -    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" -                     android:targetPackage="com.android.server.wm.flicker.ime" -                     android:label="WindowManager Flicker Tests"> -    </instrumentation> -</manifest> +<network-security-config> +    <domain-config cleartextTrafficPermitted="true"> +        <domain includeSubdomains="true">localhost</domain> +    </domain-config> +</network-security-config> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt b/tests/FlickerTests/AppClose/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt index 288558aeb3b1..64dd44d8b6e0 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt +++ b/tests/FlickerTests/AppClose/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2020 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt b/tests/FlickerTests/AppClose/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt index 32305c6c9a33..eb256b56193d 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt +++ b/tests/FlickerTests/AppClose/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2020 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt b/tests/FlickerTests/AppClose/src/com/android/server/wm/flicker/close/CloseAppTransition.kt index 8d752ccd275e..ea025c74b8db 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt +++ b/tests/FlickerTests/AppClose/src/com/android/server/wm/flicker/close/CloseAppTransition.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2021 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/AppClose/trace_config/trace_config.textproto b/tests/FlickerTests/AppClose/trace_config/trace_config.textproto new file mode 100644 index 000000000000..c9a35aca9085 --- /dev/null +++ b/tests/FlickerTests/AppClose/trace_config/trace_config.textproto @@ -0,0 +1,77 @@ +# Copyright (C) 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. + +# proto-message: TraceConfig + +# Enable periodic flushing of the trace buffer into the output file. +write_into_file: true + +# Writes the userspace buffer into the file every 1s. +file_write_period_ms: 2500 + +# See b/126487238 - we need to guarantee ordering of events. +flush_period_ms: 30000 + +# The trace buffers needs to be big enough to hold |file_write_period_ms| of +# trace data. The trace buffer sizing depends on the number of trace categories +# enabled and the device activity. + +# RSS events +buffers: { +  size_kb: 63488 +  fill_policy: RING_BUFFER +} + +data_sources { +  config { +    name: "linux.process_stats" +    target_buffer: 0 +    # polled per-process memory counters and process/thread names. +    # If you don't want the polled counters, remove the "process_stats_config" +    # section, but keep the data source itself as it still provides on-demand +    # thread/process naming for ftrace data below. +    process_stats_config { +      scan_all_processes_on_start: true +    } +  } +} + +data_sources: { +  config { +    name: "linux.ftrace" +    ftrace_config { +      ftrace_events: "ftrace/print" +      ftrace_events: "task/task_newtask" +      ftrace_events: "task/task_rename" +      atrace_categories: "ss" +      atrace_categories: "wm" +      atrace_categories: "am" +      atrace_categories: "aidl" +      atrace_categories: "input" +      atrace_categories: "binder_driver" +      atrace_categories: "sched_process_exit" +      atrace_apps: "com.android.server.wm.flicker" +      atrace_apps: "com.android.server.wm.flicker.other" +      atrace_apps: "com.android.server.wm.flicker.close" +      atrace_apps: "com.android.server.wm.flicker.ime" +      atrace_apps: "com.android.server.wm.flicker.launch" +      atrace_apps: "com.android.server.wm.flicker.quickswitch" +      atrace_apps: "com.android.server.wm.flicker.rotation" +      atrace_apps: "com.android.server.wm.flicker.testapp" +      atrace_apps: "com.android.systemui" +      atrace_apps: "com.google.android.apps.nexuslauncher" +    } +  } +} + diff --git a/tests/FlickerTests/AppLaunch/Android.bp b/tests/FlickerTests/AppLaunch/Android.bp new file mode 100644 index 000000000000..f33384df6e7f --- /dev/null +++ b/tests/FlickerTests/AppLaunch/Android.bp @@ -0,0 +1,69 @@ +// +// Copyright (C) 2018 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 { +    // See: http://go/android-license-faq +    // A large-scale-change added 'default_applicable_licenses' to import +    // all of the 'license_kinds' from "frameworks_base_license" +    // to get the below license kinds: +    //   SPDX-license-identifier-Apache-2.0 +    default_applicable_licenses: ["frameworks_base_license"], +} + +filegroup { +    name: "FlickerTestsAppLaunchCommon-src", +    srcs: ["src/**/common/*"], +} + +filegroup { +    name: "FlickerTestsAppLaunch1-src", +    srcs: ["src/**/OpenApp*"], +} + +java_library { +    name: "FlickerTestsAppLaunchCommon", +    defaults: ["FlickerTestsDefault"], +    srcs: [":FlickerTestsAppLaunchCommon-src"], +    static_libs: ["FlickerTestsBase"], +} + +android_test { +    name: "FlickerTestsAppLaunch1", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: [":FlickerTestsAppLaunch1-src"], +    static_libs: [ +        "FlickerTestsBase", +        "FlickerTestsAppLaunchCommon", +    ], +} + +android_test { +    name: "FlickerTestsAppLaunch2", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: ["src/**/*"], +    exclude_srcs: [ +        ":FlickerTestsAppLaunchCommon-src", +        ":FlickerTestsAppLaunch1-src", +    ], +    static_libs: [ +        "FlickerTestsBase", +        "FlickerTestsAppLaunchCommon", +    ], +} diff --git a/tests/FlickerTests/AppLaunch/AndroidManifest.xml b/tests/FlickerTests/AppLaunch/AndroidManifest.xml new file mode 100644 index 000000000000..b89af1a5260b --- /dev/null +++ b/tests/FlickerTests/AppLaunch/AndroidManifest.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" +          xmlns:tools="http://schemas.android.com/tools" +          package="com.android.server.wm.flicker.launch"> + +    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/> +    <!-- Read and write traces from external storage --> +    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> +    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> +    <!-- Allow the test to write directly to /sdcard/ --> +    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> +    <!-- Write secure settings --> +    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> +    <!-- Capture screen contents --> +    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" /> +    <!-- Enable / Disable tracing !--> +    <uses-permission android:name="android.permission.DUMP" /> +    <!-- Force-stop test apps --> +    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> +    <!-- Run layers trace --> +    <uses-permission android:name="android.permission.HARDWARE_TEST"/> +    <!-- Capture screen recording --> +    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/> +    <!-- Workaround grant runtime permission exception from b/152733071 --> +    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> +    <uses-permission android:name="android.permission.READ_LOGS"/> +    <!-- ATM.removeRootTasksWithActivityTypes() --> +    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> +    <!-- ActivityOptions.makeCustomTaskAnimation() --> +    <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> +    <!-- Allow the test to connect to perfetto trace processor --> +    <uses-permission android:name="android.permission.INTERNET"/> +    <!-- Allow the test to write directly to /sdcard/ and connect to trace processor --> +    <application android:requestLegacyExternalStorage="true" +                 android:networkSecurityConfig="@xml/network_security_config" +                 android:largeHeap="true"> +        <uses-library android:name="android.test.runner"/> +        <uses-library android:name="androidx.window.extensions" android:required="false"/> + +        <!-- (b/197936012) Remove startup provider due to test timeout issue --> +        <provider +            android:name="androidx.startup.InitializationProvider" +            android:authorities="${applicationId}.androidx-startup" +            tools:node="remove" /> +    </application> + +    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" +                     android:targetPackage="com.android.server.wm.flicker.launch" +                     android:label="WindowManager Flicker Tests"> +    </instrumentation> +</manifest> diff --git a/tests/FlickerTests/AppLaunch/AndroidTestTemplate.xml b/tests/FlickerTests/AppLaunch/AndroidTestTemplate.xml new file mode 100644 index 000000000000..583bcb74ffc2 --- /dev/null +++ b/tests/FlickerTests/AppLaunch/AndroidTestTemplate.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + * Copyright 2018 Google Inc. All Rights Reserved. + --> +<configuration description="Runs WindowManager {MODULE}"> +    <option name="test-tag" value="FlickerTests"/> +    <!-- Needed for storing the perfetto trace files in the sdcard/test_results--> +    <option name="isolated-storage" value="false"/> + +    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> +        <!-- keeps the screen on during tests --> +        <option name="screen-always-on" value="on"/> +        <!-- prevents the phone from restarting --> +        <option name="force-skip-system-props" value="true"/> +        <!-- set WM tracing verbose level to all --> +        <option name="run-command" value="cmd window tracing level all"/> +        <!-- set WM tracing to frame (avoid incomplete states) --> +        <option name="run-command" value="cmd window tracing frame"/> +        <!-- ensure lock screen mode is swipe --> +        <option name="run-command" value="locksettings set-disabled false"/> +        <!-- disable betterbug as it's log collection dialogues cause flakes in e2e tests --> +        <option name="run-command" value="pm disable com.google.android.internal.betterbug"/> +        <!-- restart launcher to activate TAPL --> +        <option name="run-command" +                value="setprop ro.test_harness 1 ; am force-stop com.google.android.apps.nexuslauncher"/> +        <!-- Increase trace size: 20mb for WM and 80mb for SF --> +        <option name="run-command" value="cmd window tracing size 20480"/> +        <option name="run-command" value="su root service call SurfaceFlinger 1029 i32 81920"/> +        <!-- b/307664397 - Ensure camera has the correct permissions and doesn't show a dialog --> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.CAMERA"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.RECORD_AUDIO"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_FINE_LOCATION"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_COARSE_LOCATION"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> +        <option name="test-user-token" value="%TEST_USER%"/> +        <option name="run-command" value="rm -rf /data/user/%TEST_USER%/files/*"/> +        <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/> +        <option name="run-command" value="settings put system show_touches 1"/> +        <option name="run-command" value="settings put system pointer_location 1"/> +        <option name="teardown-command" +                value="settings delete secure show_ime_with_hard_keyboard"/> +        <option name="teardown-command" value="settings delete system show_touches"/> +        <option name="teardown-command" value="settings delete system pointer_location"/> +        <option name="teardown-command" +                value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> +        <option name="cleanup-apks" value="true"/> +        <option name="test-file-name" value="{MODULE}.apk"/> +        <option name="test-file-name" value="FlickerTestApp.apk"/> +    </target_preparer> +    <!-- Needed for pushing the trace config file --> +    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/> +    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> +        <option name="push-file" +                key="trace_config.textproto" +                value="/data/misc/perfetto-traces/trace_config.textproto" +        /> +        <!--Install the content provider automatically when we push some file in sdcard folder.--> +        <!--Needed to avoid the installation during the test suite.--> +        <option name="push-file" key="trace_config.textproto" value="/sdcard/sample.textproto"/> +    </target_preparer> +    <test class="com.android.tradefed.testtype.AndroidJUnitTest"> +        <option name="package" value="{PACKAGE}"/> +        <option name="shell-timeout" value="6600s"/> +        <option name="test-timeout" value="6600s"/> +        <option name="hidden-api-checks" value="false"/> +        <option name="device-listeners" value="android.device.collectors.PerfettoListener"/> +        <!-- PerfettoListener related arguments --> +        <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/> +        <option name="instrumentation-arg" +                key="perfetto_config_file" +                value="trace_config.textproto" +        /> +        <option name="instrumentation-arg" key="per_run" value="true"/> +    </test> +    <!-- Needed for pulling the collected trace config on to the host --> +    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> +        <option name="pull-pattern-keys" value="perfetto_file_path"/> +        <option name="directory-keys" +                value="/data/user/0/com.android.server.wm.flicker.launch/files"/> +        <option name="collect-on-run-ended-only" value="true"/> +        <option name="clean-up" value="true"/> +    </metrics_collector> +</configuration> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OWNERS b/tests/FlickerTests/AppLaunch/OWNERS index 2c414a27cacb..2c414a27cacb 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OWNERS +++ b/tests/FlickerTests/AppLaunch/OWNERS diff --git a/tests/FlickerTests/AppLaunch/res/anim/show_hide_show_3000ms.xml b/tests/FlickerTests/AppLaunch/res/anim/show_hide_show_3000ms.xml new file mode 100644 index 000000000000..7b3f07e3a2f5 --- /dev/null +++ b/tests/FlickerTests/AppLaunch/res/anim/show_hide_show_3000ms.xml @@ -0,0 +1,31 @@ +<!-- +  ~ Copyright (C) 2022 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. +  --> + +<set +    xmlns:android="http://schemas.android.com/apk/res/android" +    android:fillAfter="true"> + +    <alpha +        android:fromAlpha="1.0" +        android:toAlpha="0.0" +        android:duration="1000" /> + +    <alpha +        android:startOffset="2000" +        android:fromAlpha="1.0" +        android:toAlpha="1.0" +        android:duration="1000" /> +</set>
\ No newline at end of file diff --git a/tests/FlickerTests/manifests/AndroidManifestAppClose.xml b/tests/FlickerTests/AppLaunch/res/xml/network_security_config.xml index 4cdcb903b498..4bd9ca049f55 100644 --- a/tests/FlickerTests/manifests/AndroidManifestAppClose.xml +++ b/tests/FlickerTests/AppLaunch/res/xml/network_security_config.xml @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?>  <!--    ~ Copyright (C) 2023 The Android Open Source Project    ~ @@ -14,11 +15,8 @@    ~ limitations under the License.    --> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" -    package="com.android.server.wm.flicker.close"> - -    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" -                     android:targetPackage="com.android.server.wm.flicker.close" -                     android:label="WindowManager Flicker Tests"> -    </instrumentation> -</manifest> +<network-security-config> +    <domain-config cleartextTrafficPermitted="true"> +        <domain includeSubdomains="true">localhost</domain> +    </domain-config> +</network-security-config> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/ActivityTransitionTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/ActivityTransitionTest.kt index 89ab41e49270..89ab41e49270 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/ActivityTransitionTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/ActivityTransitionTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIconColdTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIconColdTest.kt index f788efae4c59..413767ce7618 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIconColdTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIconColdTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2022 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdAfterCameraTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdAfterCameraTest.kt index d86dc50b3a5c..4168bdc705f1 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdAfterCameraTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdAfterCameraTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2022 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdTest.kt index be07053f3039..9c55c98a8f4f 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIntentColdTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2020 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIntentWarmTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIntentWarmTest.kt index f66eff9b4cb0..fc6cdb1ee01e 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromIntentWarmTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromIntentWarmTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2020 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt index 65214764f0ac..de666dd42877 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2021 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt index 4d31c28b1231..f8a9961d1d28 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2020 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenCameraFromHomeOnDoubleClickPowerButtonTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenCameraFromHomeOnDoubleClickPowerButtonTest.kt index 42e34b313d8e..0aceb354dec6 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenCameraFromHomeOnDoubleClickPowerButtonTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenCameraFromHomeOnDoubleClickPowerButtonTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2022 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenTransferSplashscreenAppFromLauncherTransition.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenTransferSplashscreenAppFromLauncherTransition.kt index 97ba99e0f7ec..f41a2a297ad9 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenTransferSplashscreenAppFromLauncherTransition.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenTransferSplashscreenAppFromLauncherTransition.kt @@ -14,7 +14,7 @@   * limitations under the License.   */ -package com.android.server.wm.flicker.launch.common +package com.android.server.wm.flicker.launch  import android.platform.test.annotations.Presubmit  import android.tools.common.traces.component.ComponentNameMatcher @@ -24,6 +24,7 @@ import android.tools.device.flicker.legacy.LegacyFlickerTestFactory  import androidx.test.filters.FlakyTest  import androidx.test.filters.RequiresDevice  import com.android.server.wm.flicker.helpers.TransferSplashscreenAppHelper +import com.android.server.wm.flicker.launch.common.OpenAppFromIconTransition  import org.junit.FixMethodOrder  import org.junit.Test  import org.junit.runner.RunWith diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt index 98e3646f4083..93ca41c4181c 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt @@ -31,7 +31,6 @@ import android.tools.device.flicker.rules.RemoveAllTasksButHomeRule  import android.tools.device.helpers.wakeUpAndGoToHomeScreen  import androidx.test.filters.RequiresDevice  import androidx.test.platform.app.InstrumentationRegistry -import com.android.server.wm.flicker.R  import com.android.server.wm.flicker.helpers.SimpleAppHelper  import com.android.server.wm.flicker.helpers.setRotation  import org.junit.FixMethodOrder diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt index b82a12901681..9c2899ac6087 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt @@ -1,5 +1,5 @@  /* - * Copyright (C) 2021 The Android Open Source Project + * Copyright (C) 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. diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt index c8547015b92b..802c755116af 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt @@ -44,4 +44,4 @@ abstract class OpenAppFromIconTransition(flicker: LegacyFlickerTest) :              }              teardown { testApp.exit(wmHelper) }          } -}
\ No newline at end of file +} diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppFromLauncherTransition.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLauncherTransition.kt index 9d7096ea0e73..9d7096ea0e73 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppFromLauncherTransition.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLauncherTransition.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt index 7b088431b0bb..7b088431b0bb 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppTransition.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppTransition.kt index 989619e08d98..989619e08d98 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/common/OpenAppTransition.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppTransition.kt diff --git a/tests/FlickerTests/AppLaunch/trace_config/trace_config.textproto b/tests/FlickerTests/AppLaunch/trace_config/trace_config.textproto new file mode 100644 index 000000000000..c9a35aca9085 --- /dev/null +++ b/tests/FlickerTests/AppLaunch/trace_config/trace_config.textproto @@ -0,0 +1,77 @@ +# Copyright (C) 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. + +# proto-message: TraceConfig + +# Enable periodic flushing of the trace buffer into the output file. +write_into_file: true + +# Writes the userspace buffer into the file every 1s. +file_write_period_ms: 2500 + +# See b/126487238 - we need to guarantee ordering of events. +flush_period_ms: 30000 + +# The trace buffers needs to be big enough to hold |file_write_period_ms| of +# trace data. The trace buffer sizing depends on the number of trace categories +# enabled and the device activity. + +# RSS events +buffers: { +  size_kb: 63488 +  fill_policy: RING_BUFFER +} + +data_sources { +  config { +    name: "linux.process_stats" +    target_buffer: 0 +    # polled per-process memory counters and process/thread names. +    # If you don't want the polled counters, remove the "process_stats_config" +    # section, but keep the data source itself as it still provides on-demand +    # thread/process naming for ftrace data below. +    process_stats_config { +      scan_all_processes_on_start: true +    } +  } +} + +data_sources: { +  config { +    name: "linux.ftrace" +    ftrace_config { +      ftrace_events: "ftrace/print" +      ftrace_events: "task/task_newtask" +      ftrace_events: "task/task_rename" +      atrace_categories: "ss" +      atrace_categories: "wm" +      atrace_categories: "am" +      atrace_categories: "aidl" +      atrace_categories: "input" +      atrace_categories: "binder_driver" +      atrace_categories: "sched_process_exit" +      atrace_apps: "com.android.server.wm.flicker" +      atrace_apps: "com.android.server.wm.flicker.other" +      atrace_apps: "com.android.server.wm.flicker.close" +      atrace_apps: "com.android.server.wm.flicker.ime" +      atrace_apps: "com.android.server.wm.flicker.launch" +      atrace_apps: "com.android.server.wm.flicker.quickswitch" +      atrace_apps: "com.android.server.wm.flicker.rotation" +      atrace_apps: "com.android.server.wm.flicker.testapp" +      atrace_apps: "com.android.systemui" +      atrace_apps: "com.google.android.apps.nexuslauncher" +    } +  } +} + diff --git a/tests/FlickerTests/FlickerService/Android.bp b/tests/FlickerTests/FlickerService/Android.bp new file mode 100644 index 000000000000..1a381150dfb0 --- /dev/null +++ b/tests/FlickerTests/FlickerService/Android.bp @@ -0,0 +1,33 @@ +// +// Copyright (C) 2018 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 { +    // See: http://go/android-license-faq +    // A large-scale-change added 'default_applicable_licenses' to import +    // all of the 'license_kinds' from "frameworks_base_license" +    // to get the below license kinds: +    //   SPDX-license-identifier-Apache-2.0 +    default_applicable_licenses: ["frameworks_base_license"], +} + +android_test { +    name: "FlickerServiceTests", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: ["src/**/*"], +    static_libs: ["FlickerTestsBase"], +} diff --git a/tests/FlickerTests/FlickerService/AndroidManifest.xml b/tests/FlickerTests/FlickerService/AndroidManifest.xml new file mode 100644 index 000000000000..f31e8206a28d --- /dev/null +++ b/tests/FlickerTests/FlickerService/AndroidManifest.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" +          xmlns:tools="http://schemas.android.com/tools" +          package="com.android.server.wm.flicker.service"> + +    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/> +    <!-- Read and write traces from external storage --> +    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> +    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> +    <!-- Allow the test to write directly to /sdcard/ --> +    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> +    <!-- Write secure settings --> +    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> +    <!-- Capture screen contents --> +    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" /> +    <!-- Enable / Disable tracing !--> +    <uses-permission android:name="android.permission.DUMP" /> +    <!-- Force-stop test apps --> +    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> +    <!-- Run layers trace --> +    <uses-permission android:name="android.permission.HARDWARE_TEST"/> +    <!-- Capture screen recording --> +    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/> +    <!-- Workaround grant runtime permission exception from b/152733071 --> +    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> +    <uses-permission android:name="android.permission.READ_LOGS"/> +    <!-- ATM.removeRootTasksWithActivityTypes() --> +    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> +    <!-- ActivityOptions.makeCustomTaskAnimation() --> +    <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> +    <!-- Allow the test to connect to perfetto trace processor --> +    <uses-permission android:name="android.permission.INTERNET"/> +    <!-- Allow the test to write directly to /sdcard/ and connect to trace processor --> +    <application android:requestLegacyExternalStorage="true" +                 android:networkSecurityConfig="@xml/network_security_config" +                 android:largeHeap="true"> +        <uses-library android:name="android.test.runner"/> +        <uses-library android:name="androidx.window.extensions" android:required="false"/> + +        <!-- (b/197936012) Remove startup provider due to test timeout issue --> +        <provider +            android:name="androidx.startup.InitializationProvider" +            android:authorities="${applicationId}.androidx-startup" +            tools:node="remove" /> +    </application> + +    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" +                     android:targetPackage="com.android.server.wm.flicker.service" +                     android:label="WindowManager Flicker Tests"> +    </instrumentation> +</manifest> diff --git a/tests/FlickerTests/FlickerService/AndroidTestTemplate.xml b/tests/FlickerTests/FlickerService/AndroidTestTemplate.xml new file mode 100644 index 000000000000..d6ae2b3a5d94 --- /dev/null +++ b/tests/FlickerTests/FlickerService/AndroidTestTemplate.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + * Copyright 2018 Google Inc. All Rights Reserved. + --> +<configuration description="Runs WindowManager {MODULE}"> +    <option name="test-tag" value="FlickerTests"/> +    <!-- Needed for storing the perfetto trace files in the sdcard/test_results--> +    <option name="isolated-storage" value="false"/> + +    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> +        <!-- keeps the screen on during tests --> +        <option name="screen-always-on" value="on"/> +        <!-- prevents the phone from restarting --> +        <option name="force-skip-system-props" value="true"/> +        <!-- set WM tracing verbose level to all --> +        <option name="run-command" value="cmd window tracing level all"/> +        <!-- set WM tracing to frame (avoid incomplete states) --> +        <option name="run-command" value="cmd window tracing frame"/> +        <!-- ensure lock screen mode is swipe --> +        <option name="run-command" value="locksettings set-disabled false"/> +        <!-- disable betterbug as it's log collection dialogues cause flakes in e2e tests --> +        <option name="run-command" value="pm disable com.google.android.internal.betterbug"/> +        <!-- restart launcher to activate TAPL --> +        <option name="run-command" +                value="setprop ro.test_harness 1 ; am force-stop com.google.android.apps.nexuslauncher"/> +        <!-- Increase trace size: 20mb for WM and 80mb for SF --> +        <option name="run-command" value="cmd window tracing size 20480"/> +        <option name="run-command" value="su root service call SurfaceFlinger 1029 i32 81920"/> +        <!-- b/307664397 - Ensure camera has the correct permissions and doesn't show a dialog --> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.CAMERA"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.RECORD_AUDIO"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_FINE_LOCATION"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_COARSE_LOCATION"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> +        <option name="test-user-token" value="%TEST_USER%"/> +        <option name="run-command" value="rm -rf /data/user/%TEST_USER%/files/*"/> +        <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/> +        <option name="run-command" value="settings put system show_touches 1"/> +        <option name="run-command" value="settings put system pointer_location 1"/> +        <option name="teardown-command" +                value="settings delete secure show_ime_with_hard_keyboard"/> +        <option name="teardown-command" value="settings delete system show_touches"/> +        <option name="teardown-command" value="settings delete system pointer_location"/> +        <option name="teardown-command" +                value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> +        <option name="cleanup-apks" value="true"/> +        <option name="test-file-name" value="{MODULE}.apk"/> +        <option name="test-file-name" value="FlickerTestApp.apk"/> +    </target_preparer> +    <!-- Needed for pushing the trace config file --> +    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/> +    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> +        <option name="push-file" +                key="trace_config.textproto" +                value="/data/misc/perfetto-traces/trace_config.textproto" +        /> +        <!--Install the content provider automatically when we push some file in sdcard folder.--> +        <!--Needed to avoid the installation during the test suite.--> +        <option name="push-file" key="trace_config.textproto" value="/sdcard/sample.textproto"/> +    </target_preparer> +    <test class="com.android.tradefed.testtype.AndroidJUnitTest"> +        <option name="package" value="{PACKAGE}"/> +        <option name="shell-timeout" value="6600s"/> +        <option name="test-timeout" value="6600s"/> +        <option name="hidden-api-checks" value="false"/> +        <option name="device-listeners" value="android.device.collectors.PerfettoListener"/> +        <!-- PerfettoListener related arguments --> +        <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/> +        <option name="instrumentation-arg" +                key="perfetto_config_file" +                value="trace_config.textproto" +        /> +        <option name="instrumentation-arg" key="per_run" value="true"/> +    </test> +    <!-- Needed for pulling the collected trace config on to the host --> +    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> +        <option name="pull-pattern-keys" value="perfetto_file_path"/> +        <option name="directory-keys" +                value="/data/user/0/com.android.server.wm.flicker.service/files"/> +        <option name="collect-on-run-ended-only" value="true"/> +        <option name="clean-up" value="true"/> +    </metrics_collector> +</configuration> diff --git a/tests/FlickerTests/FlickerService/res/anim/show_hide_show_3000ms.xml b/tests/FlickerTests/FlickerService/res/anim/show_hide_show_3000ms.xml new file mode 100644 index 000000000000..7b3f07e3a2f5 --- /dev/null +++ b/tests/FlickerTests/FlickerService/res/anim/show_hide_show_3000ms.xml @@ -0,0 +1,31 @@ +<!-- +  ~ Copyright (C) 2022 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. +  --> + +<set +    xmlns:android="http://schemas.android.com/apk/res/android" +    android:fillAfter="true"> + +    <alpha +        android:fromAlpha="1.0" +        android:toAlpha="0.0" +        android:duration="1000" /> + +    <alpha +        android:startOffset="2000" +        android:fromAlpha="1.0" +        android:toAlpha="1.0" +        android:duration="1000" /> +</set>
\ No newline at end of file diff --git a/tests/FlickerTests/manifests/AndroidManifestAppLaunch.xml b/tests/FlickerTests/FlickerService/res/xml/network_security_config.xml index 659a745ba480..4bd9ca049f55 100644 --- a/tests/FlickerTests/manifests/AndroidManifestAppLaunch.xml +++ b/tests/FlickerTests/FlickerService/res/xml/network_security_config.xml @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?>  <!--    ~ Copyright (C) 2023 The Android Open Source Project    ~ @@ -14,11 +15,8 @@    ~ limitations under the License.    --> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" -    package="com.android.server.wm.flicker.launch"> - -    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" -                     android:targetPackage="com.android.server.wm.flicker.launch" -                     android:label="WindowManager Flicker Tests"> -    </instrumentation> -</manifest> +<network-security-config> +    <domain-config cleartextTrafficPermitted="true"> +        <domain includeSubdomains="true">localhost</domain> +    </domain-config> +</network-security-config> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/Utils.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/Utils.kt index 8242e9a31992..8242e9a31992 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/Utils.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/Utils.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonLandscape.kt index b3c9c96c614c..b3c9c96c614c 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonPortrait.kt index 29c11a4257f6..29c11a4257f6 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButton3ButtonPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavLandscape.kt index 1bb4a253ff41..1bb4a253ff41 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavPortrait.kt index 17cb6e194ec3..17cb6e194ec3 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppBackButtonGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonLandscape.kt index 47c25294f66e..47c25294f66e 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonPortrait.kt index b18148f97759..b18148f97759 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppHomeButton3ButtonPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavLandscape.kt index 85430154e202..85430154e202 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavPortrait.kt index f88963b7a341..f88963b7a341 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/flicker/CloseAppSwipeToHomeGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppBackButton.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppBackButton.kt index 2aaacde52547..2aaacde52547 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppBackButton.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppBackButton.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppHomeButton.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppHomeButton.kt index 08683a3ab43d..08683a3ab43d 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppHomeButton.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppHomeButton.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppSwipeToHome.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppSwipeToHome.kt index 360e11408c92..360e11408c92 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppSwipeToHome.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/close/scenarios/CloseAppSwipeToHome.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavLandscape.kt index bb18770a8e7c..bb18770a8e7c 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavPortrait.kt index 1c3cc2188c7c..1c3cc2188c7c 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationCold3ButtonNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavLandscape.kt index 46d36dbd6b09..46d36dbd6b09 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavPortrait.kt index f6a668feeed6..f6a668feeed6 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationColdGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavLandscape.kt index 93200ba1b6fe..93200ba1b6fe 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavPortrait.kt index f5d41d250b1e..f5d41d250b1e 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarm3ButtonNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavLandscape.kt index 28f322bee130..28f322bee130 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavPortrait.kt index beb3fae8be48..beb3fae8be48 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWarmGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavLandscape.kt index 4adcc8bf5f0b..4adcc8bf5f0b 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavPortrait.kt index f7211e7287cf..f7211e7287cf 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayApp3ButtonNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavLandscape.kt index 1ade9560d90f..1ade9560d90f 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavPortrait.kt index ea26f0867c7f..ea26f0867c7f 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromLockscreenNotificationWithOverlayAppGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavLandscape.kt index 866190f78827..866190f78827 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavPortrait.kt index a8d628328ed9..a8d628328ed9 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationCold3ButtonNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavLandscape.kt index ef84c3f1177e..ef84c3f1177e 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavPortrait.kt index 5bb6b3713e9f..5bb6b3713e9f 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationColdGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavLandscape.kt index 39f25e97f04c..39f25e97f04c 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavPortrait.kt index 28816bcba2a1..28816bcba2a1 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarm3ButtonNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavLandscape.kt index 94ffe4e57994..94ffe4e57994 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavPortrait.kt index e5f5ec4a6fe8..e5f5ec4a6fe8 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/flicker/OpenAppFromNotificationWarmGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/NotificationUtils.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/NotificationUtils.kt index ac4e16969bad..ac4e16969bad 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/NotificationUtils.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/NotificationUtils.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationCold.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationCold.kt index 9c53ab30e8cd..9c53ab30e8cd 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationCold.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationCold.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWarm.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWarm.kt index 31f55d9d2e99..31f55d9d2e99 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWarm.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWarm.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWithOverlayApp.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWithOverlayApp.kt index b971555f2747..b971555f2747 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWithOverlayApp.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromLockscreenNotificationWithOverlayApp.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationCold.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationCold.kt index fed077ed0e50..fed077ed0e50 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationCold.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationCold.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationWarm.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationWarm.kt index 403790e904d8..403790e904d8 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationWarm.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/notification/scenarios/OpenAppFromNotificationWarm.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavLandscape.kt index d611a420edcb..d611a420edcb 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavPortrait.kt index e6bcbba661f3..e6bcbba661f3 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsBackGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavLandscape.kt index 2a26d633adaf..2a26d633adaf 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavPortrait.kt index 5ce714371db0..5ce714371db0 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchBetweenTwoAppsForwardGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavLandscape.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavLandscape.kt index cff47bb8cc19..cff47bb8cc19 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavLandscape.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavLandscape.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavPortrait.kt index 33095a6ac078..33095a6ac078 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavPortrait.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/flicker/QuickSwitchFromLauncherGesturalNavPortrait.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsBack.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsBack.kt index a1708fe3a4b6..a1708fe3a4b6 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsBack.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsBack.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsForward.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsForward.kt index 3cae1c43285b..fcf442a4e300 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsForward.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchBetweenTwoAppsForward.kt @@ -19,6 +19,7 @@ package com.android.server.wm.flicker.service.quickswitch.scenarios  import android.app.Instrumentation  import android.tools.common.NavBar  import android.tools.common.Rotation +import android.tools.device.flicker.rules.ChangeDisplayOrientationRule  import android.tools.device.traces.parsers.WindowManagerStateHelper  import androidx.test.platform.app.InstrumentationRegistry  import com.android.launcher3.tapl.LauncherInstrumentation @@ -30,7 +31,6 @@ import org.junit.Before  import org.junit.Ignore  import org.junit.Rule  import org.junit.Test -import android.tools.device.flicker.rules.ChangeDisplayOrientationRule  @Ignore("Base Test Class")  abstract class QuickSwitchBetweenTwoAppsForward(val rotation: Rotation = Rotation.ROTATION_0) { diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchFromLauncher.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchFromLauncher.kt index 7afe5268ede4..7afe5268ede4 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchFromLauncher.kt +++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/quickswitch/scenarios/QuickSwitchFromLauncher.kt diff --git a/tests/FlickerTests/FlickerService/trace_config/trace_config.textproto b/tests/FlickerTests/FlickerService/trace_config/trace_config.textproto new file mode 100644 index 000000000000..c9a35aca9085 --- /dev/null +++ b/tests/FlickerTests/FlickerService/trace_config/trace_config.textproto @@ -0,0 +1,77 @@ +# Copyright (C) 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. + +# proto-message: TraceConfig + +# Enable periodic flushing of the trace buffer into the output file. +write_into_file: true + +# Writes the userspace buffer into the file every 1s. +file_write_period_ms: 2500 + +# See b/126487238 - we need to guarantee ordering of events. +flush_period_ms: 30000 + +# The trace buffers needs to be big enough to hold |file_write_period_ms| of +# trace data. The trace buffer sizing depends on the number of trace categories +# enabled and the device activity. + +# RSS events +buffers: { +  size_kb: 63488 +  fill_policy: RING_BUFFER +} + +data_sources { +  config { +    name: "linux.process_stats" +    target_buffer: 0 +    # polled per-process memory counters and process/thread names. +    # If you don't want the polled counters, remove the "process_stats_config" +    # section, but keep the data source itself as it still provides on-demand +    # thread/process naming for ftrace data below. +    process_stats_config { +      scan_all_processes_on_start: true +    } +  } +} + +data_sources: { +  config { +    name: "linux.ftrace" +    ftrace_config { +      ftrace_events: "ftrace/print" +      ftrace_events: "task/task_newtask" +      ftrace_events: "task/task_rename" +      atrace_categories: "ss" +      atrace_categories: "wm" +      atrace_categories: "am" +      atrace_categories: "aidl" +      atrace_categories: "input" +      atrace_categories: "binder_driver" +      atrace_categories: "sched_process_exit" +      atrace_apps: "com.android.server.wm.flicker" +      atrace_apps: "com.android.server.wm.flicker.other" +      atrace_apps: "com.android.server.wm.flicker.close" +      atrace_apps: "com.android.server.wm.flicker.ime" +      atrace_apps: "com.android.server.wm.flicker.launch" +      atrace_apps: "com.android.server.wm.flicker.quickswitch" +      atrace_apps: "com.android.server.wm.flicker.rotation" +      atrace_apps: "com.android.server.wm.flicker.testapp" +      atrace_apps: "com.android.systemui" +      atrace_apps: "com.google.android.apps.nexuslauncher" +    } +  } +} + diff --git a/tests/FlickerTests/IME/Android.bp b/tests/FlickerTests/IME/Android.bp new file mode 100644 index 000000000000..057d9fcdb796 --- /dev/null +++ b/tests/FlickerTests/IME/Android.bp @@ -0,0 +1,78 @@ +// +// Copyright (C) 2018 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 { +    // See: http://go/android-license-faq +    // A large-scale-change added 'default_applicable_licenses' to import +    // all of the 'license_kinds' from "frameworks_base_license" +    // to get the below license kinds: +    //   SPDX-license-identifier-Apache-2.0 +    default_applicable_licenses: ["frameworks_base_license"], +} + +filegroup { +    name: "FlickerTestsImeCommon-src", +    srcs: ["src/**/common/*"], +} + +filegroup { +    name: "FlickerTestsIme1-src", +    srcs: ["src/**/Close*"], +} + +android_test { +    name: "FlickerTestsIme", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: ["src/**/*"], +    static_libs: ["FlickerTestsBase"], +} + +java_library { +    name: "FlickerTestsImeCommon", +    defaults: ["FlickerTestsDefault"], +    srcs: [":FlickerTestsImeCommon-src"], +    static_libs: ["FlickerTestsBase"], +} + +android_test { +    name: "FlickerTestsIme1", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: [":FlickerTestsIme1-src"], +    static_libs: [ +        "FlickerTestsBase", +        "FlickerTestsImeCommon", +    ], +} + +android_test { +    name: "FlickerTestsIme2", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: ["src/**/*"], +    exclude_srcs: [ +        ":FlickerTestsIme1-src", +        ":FlickerTestsImeCommon-src", +    ], +    static_libs: [ +        "FlickerTestsBase", +        "FlickerTestsImeCommon", +    ], +} diff --git a/tests/FlickerTests/IME/AndroidManifest.xml b/tests/FlickerTests/IME/AndroidManifest.xml new file mode 100644 index 000000000000..d6ca683e13f2 --- /dev/null +++ b/tests/FlickerTests/IME/AndroidManifest.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" +          xmlns:tools="http://schemas.android.com/tools" +          package="com.android.server.wm.flicker.ime"> + +    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/> +    <!-- Read and write traces from external storage --> +    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> +    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> +    <!-- Allow the test to write directly to /sdcard/ --> +    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> +    <!-- Write secure settings --> +    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> +    <!-- Capture screen contents --> +    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" /> +    <!-- Enable / Disable tracing !--> +    <uses-permission android:name="android.permission.DUMP" /> +    <!-- Force-stop test apps --> +    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> +    <!-- Run layers trace --> +    <uses-permission android:name="android.permission.HARDWARE_TEST"/> +    <!-- Capture screen recording --> +    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/> +    <!-- Workaround grant runtime permission exception from b/152733071 --> +    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> +    <uses-permission android:name="android.permission.READ_LOGS"/> +    <!-- ATM.removeRootTasksWithActivityTypes() --> +    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> +    <!-- ActivityOptions.makeCustomTaskAnimation() --> +    <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> +    <!-- Allow the test to connect to perfetto trace processor --> +    <uses-permission android:name="android.permission.INTERNET"/> +    <!-- Allow the test to write directly to /sdcard/ and connect to trace processor --> +    <application android:requestLegacyExternalStorage="true" +                 android:networkSecurityConfig="@xml/network_security_config" +                 android:largeHeap="true"> +        <uses-library android:name="android.test.runner"/> +        <uses-library android:name="androidx.window.extensions" android:required="false"/> + +        <!-- (b/197936012) Remove startup provider due to test timeout issue --> +        <provider +            android:name="androidx.startup.InitializationProvider" +            android:authorities="${applicationId}.androidx-startup" +            tools:node="remove" /> +    </application> + +    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" +                     android:targetPackage="com.android.server.wm.flicker.ime" +                     android:label="WindowManager Flicker Tests"> +    </instrumentation> +</manifest> diff --git a/tests/FlickerTests/IME/AndroidTestTemplate.xml b/tests/FlickerTests/IME/AndroidTestTemplate.xml new file mode 100644 index 000000000000..988f76f4175c --- /dev/null +++ b/tests/FlickerTests/IME/AndroidTestTemplate.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + * Copyright 2018 Google Inc. All Rights Reserved. + --> +<configuration description="Runs WindowManager {MODULE}"> +    <option name="test-tag" value="FlickerTests"/> +    <!-- Needed for storing the perfetto trace files in the sdcard/test_results--> +    <option name="isolated-storage" value="false"/> + +    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> +        <!-- keeps the screen on during tests --> +        <option name="screen-always-on" value="on"/> +        <!-- prevents the phone from restarting --> +        <option name="force-skip-system-props" value="true"/> +        <!-- set WM tracing verbose level to all --> +        <option name="run-command" value="cmd window tracing level all"/> +        <!-- set WM tracing to frame (avoid incomplete states) --> +        <option name="run-command" value="cmd window tracing frame"/> +        <!-- ensure lock screen mode is swipe --> +        <option name="run-command" value="locksettings set-disabled false"/> +        <!-- disable betterbug as it's log collection dialogues cause flakes in e2e tests --> +        <option name="run-command" value="pm disable com.google.android.internal.betterbug"/> +        <!-- restart launcher to activate TAPL --> +        <option name="run-command" +                value="setprop ro.test_harness 1 ; am force-stop com.google.android.apps.nexuslauncher"/> +        <!-- Increase trace size: 20mb for WM and 80mb for SF --> +        <option name="run-command" value="cmd window tracing size 20480"/> +        <option name="run-command" value="su root service call SurfaceFlinger 1029 i32 81920"/> +        <!-- b/307664397 - Ensure camera has the correct permissions and doesn't show a dialog --> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.CAMERA"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.RECORD_AUDIO"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_FINE_LOCATION"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_COARSE_LOCATION"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> +        <option name="test-user-token" value="%TEST_USER%"/> +        <option name="run-command" value="rm -rf /data/user/%TEST_USER%/files/*"/> +        <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/> +        <option name="run-command" value="settings put system show_touches 1"/> +        <option name="run-command" value="settings put system pointer_location 1"/> +        <option name="teardown-command" +                value="settings delete secure show_ime_with_hard_keyboard"/> +        <option name="teardown-command" value="settings delete system show_touches"/> +        <option name="teardown-command" value="settings delete system pointer_location"/> +        <option name="teardown-command" +                value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> +        <option name="cleanup-apks" value="true"/> +        <option name="test-file-name" value="{MODULE}.apk"/> +        <option name="test-file-name" value="FlickerTestApp.apk"/> +    </target_preparer> +    <!-- Needed for pushing the trace config file --> +    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/> +    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> +        <option name="push-file" +                key="trace_config.textproto" +                value="/data/misc/perfetto-traces/trace_config.textproto" +        /> +        <!--Install the content provider automatically when we push some file in sdcard folder.--> +        <!--Needed to avoid the installation during the test suite.--> +        <option name="push-file" key="trace_config.textproto" value="/sdcard/sample.textproto"/> +    </target_preparer> +    <test class="com.android.tradefed.testtype.AndroidJUnitTest"> +        <option name="package" value="{PACKAGE}"/> +        <option name="shell-timeout" value="6600s"/> +        <option name="test-timeout" value="6600s"/> +        <option name="hidden-api-checks" value="false"/> +        <option name="device-listeners" value="android.device.collectors.PerfettoListener"/> +        <!-- PerfettoListener related arguments --> +        <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/> +        <option name="instrumentation-arg" +                key="perfetto_config_file" +                value="trace_config.textproto" +        /> +        <option name="instrumentation-arg" key="per_run" value="true"/> +    </test> +    <!-- Needed for pulling the collected trace config on to the host --> +    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> +        <option name="pull-pattern-keys" value="perfetto_file_path"/> +        <option name="directory-keys" +                value="/data/user/0/com.android.server.wm.flicker.ime/files"/> +        <option name="collect-on-run-ended-only" value="true"/> +        <option name="clean-up" value="true"/> +    </metrics_collector> +</configuration> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OWNERS b/tests/FlickerTests/IME/OWNERS index 301fafa5309e..301fafa5309e 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OWNERS +++ b/tests/FlickerTests/IME/OWNERS diff --git a/tests/FlickerTests/IME/res/anim/show_hide_show_3000ms.xml b/tests/FlickerTests/IME/res/anim/show_hide_show_3000ms.xml new file mode 100644 index 000000000000..7b3f07e3a2f5 --- /dev/null +++ b/tests/FlickerTests/IME/res/anim/show_hide_show_3000ms.xml @@ -0,0 +1,31 @@ +<!-- +  ~ Copyright (C) 2022 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. +  --> + +<set +    xmlns:android="http://schemas.android.com/apk/res/android" +    android:fillAfter="true"> + +    <alpha +        android:fromAlpha="1.0" +        android:toAlpha="0.0" +        android:duration="1000" /> + +    <alpha +        android:startOffset="2000" +        android:fromAlpha="1.0" +        android:toAlpha="1.0" +        android:duration="1000" /> +</set>
\ No newline at end of file diff --git a/tests/FlickerTests/IME/res/xml/network_security_config.xml b/tests/FlickerTests/IME/res/xml/network_security_config.xml new file mode 100644 index 000000000000..4bd9ca049f55 --- /dev/null +++ b/tests/FlickerTests/IME/res/xml/network_security_config.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<network-security-config> +    <domain-config cleartextTrafficPermitted="true"> +        <domain includeSubdomains="true">localhost</domain> +    </domain-config> +</network-security-config> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeOnDismissPopupDialogTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeOnDismissPopupDialogTest.kt index 47a1619e0e9c..47a1619e0e9c 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeOnDismissPopupDialogTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeOnDismissPopupDialogTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeOnGoHomeTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeOnGoHomeTest.kt index 48c54eabc5e2..48c54eabc5e2 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeOnGoHomeTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeOnGoHomeTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartOnGoHomeTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartOnGoHomeTest.kt index 31d5d7f837d5..31d5d7f837d5 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartOnGoHomeTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartOnGoHomeTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartToAppOnPressBackTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartToAppOnPressBackTest.kt index 180ae5d6f097..180ae5d6f097 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartToAppOnPressBackTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeShownOnAppStartToAppOnPressBackTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt index a0573b7b4b16..a0573b7b4b16 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeToHomeOnFinishActivityTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToHomeOnFinishActivityTest.kt index b44f1a607b05..b44f1a607b05 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeToHomeOnFinishActivityTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToHomeOnFinishActivityTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowToFixedPortraitAppTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/OpenImeWindowToFixedPortraitAppTest.kt index 976ac82c8bb5..976ac82c8bb5 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowToFixedPortraitAppTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/OpenImeWindowToFixedPortraitAppTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromFixedOrientationTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromFixedOrientationTest.kt index ea7c7c4276dc..ea7c7c4276dc 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromFixedOrientationTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromFixedOrientationTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromOverviewTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromOverviewTest.kt index 05babd67758c..05babd67758c 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromOverviewTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromOverviewTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest.kt index aff8e657bec0..aff8e657bec0 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppTest.kt index 4ffdcea455ba..4ffdcea455ba 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeOnAppStartWhenLaunchingAppTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeWhenFocusingOnInputFieldTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhenFocusingOnInputFieldTest.kt index 918e1ea3bcd0..918e1ea3bcd0 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeWhenFocusingOnInputFieldTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhenFocusingOnInputFieldTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeWhileDismissingThemedPopupDialogTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileDismissingThemedPopupDialogTest.kt index 6ad235ce892e..6ad235ce892e 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeWhileDismissingThemedPopupDialogTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileDismissingThemedPopupDialogTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt index f1bc125b99dc..f1bc125b99dc 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/common/CommonAssertions.kt index 777231e001f7..777231e001f7 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/common/CommonAssertions.kt diff --git a/tests/FlickerTests/IME/trace_config/trace_config.textproto b/tests/FlickerTests/IME/trace_config/trace_config.textproto new file mode 100644 index 000000000000..c9a35aca9085 --- /dev/null +++ b/tests/FlickerTests/IME/trace_config/trace_config.textproto @@ -0,0 +1,77 @@ +# Copyright (C) 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. + +# proto-message: TraceConfig + +# Enable periodic flushing of the trace buffer into the output file. +write_into_file: true + +# Writes the userspace buffer into the file every 1s. +file_write_period_ms: 2500 + +# See b/126487238 - we need to guarantee ordering of events. +flush_period_ms: 30000 + +# The trace buffers needs to be big enough to hold |file_write_period_ms| of +# trace data. The trace buffer sizing depends on the number of trace categories +# enabled and the device activity. + +# RSS events +buffers: { +  size_kb: 63488 +  fill_policy: RING_BUFFER +} + +data_sources { +  config { +    name: "linux.process_stats" +    target_buffer: 0 +    # polled per-process memory counters and process/thread names. +    # If you don't want the polled counters, remove the "process_stats_config" +    # section, but keep the data source itself as it still provides on-demand +    # thread/process naming for ftrace data below. +    process_stats_config { +      scan_all_processes_on_start: true +    } +  } +} + +data_sources: { +  config { +    name: "linux.ftrace" +    ftrace_config { +      ftrace_events: "ftrace/print" +      ftrace_events: "task/task_newtask" +      ftrace_events: "task/task_rename" +      atrace_categories: "ss" +      atrace_categories: "wm" +      atrace_categories: "am" +      atrace_categories: "aidl" +      atrace_categories: "input" +      atrace_categories: "binder_driver" +      atrace_categories: "sched_process_exit" +      atrace_apps: "com.android.server.wm.flicker" +      atrace_apps: "com.android.server.wm.flicker.other" +      atrace_apps: "com.android.server.wm.flicker.close" +      atrace_apps: "com.android.server.wm.flicker.ime" +      atrace_apps: "com.android.server.wm.flicker.launch" +      atrace_apps: "com.android.server.wm.flicker.quickswitch" +      atrace_apps: "com.android.server.wm.flicker.rotation" +      atrace_apps: "com.android.server.wm.flicker.testapp" +      atrace_apps: "com.android.systemui" +      atrace_apps: "com.google.android.apps.nexuslauncher" +    } +  } +} + diff --git a/tests/FlickerTests/Notification/Android.bp b/tests/FlickerTests/Notification/Android.bp new file mode 100644 index 000000000000..5bed568aacd1 --- /dev/null +++ b/tests/FlickerTests/Notification/Android.bp @@ -0,0 +1,33 @@ +// +// Copyright (C) 2018 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 { +    // See: http://go/android-license-faq +    // A large-scale-change added 'default_applicable_licenses' to import +    // all of the 'license_kinds' from "frameworks_base_license" +    // to get the below license kinds: +    //   SPDX-license-identifier-Apache-2.0 +    default_applicable_licenses: ["frameworks_base_license"], +} + +android_test { +    name: "FlickerTestsNotification", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: ["src/**/*"], +    static_libs: ["FlickerTestsBase"], +} diff --git a/tests/FlickerTests/Notification/AndroidManifest.xml b/tests/FlickerTests/Notification/AndroidManifest.xml new file mode 100644 index 000000000000..d212c10ff414 --- /dev/null +++ b/tests/FlickerTests/Notification/AndroidManifest.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" +          xmlns:tools="http://schemas.android.com/tools" +          package="com.android.server.wm.flicker.notification"> + +    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/> +    <!-- Read and write traces from external storage --> +    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> +    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> +    <!-- Allow the test to write directly to /sdcard/ --> +    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> +    <!-- Write secure settings --> +    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> +    <!-- Capture screen contents --> +    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" /> +    <!-- Enable / Disable tracing !--> +    <uses-permission android:name="android.permission.DUMP" /> +    <!-- Force-stop test apps --> +    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> +    <!-- Run layers trace --> +    <uses-permission android:name="android.permission.HARDWARE_TEST"/> +    <!-- Capture screen recording --> +    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/> +    <!-- Workaround grant runtime permission exception from b/152733071 --> +    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> +    <uses-permission android:name="android.permission.READ_LOGS"/> +    <!-- ATM.removeRootTasksWithActivityTypes() --> +    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> +    <!-- ActivityOptions.makeCustomTaskAnimation() --> +    <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> +    <!-- Allow the test to connect to perfetto trace processor --> +    <uses-permission android:name="android.permission.INTERNET"/> +    <!-- Allow the test to write directly to /sdcard/ and connect to trace processor --> +    <application android:requestLegacyExternalStorage="true" +                 android:networkSecurityConfig="@xml/network_security_config" +                 android:largeHeap="true"> +        <uses-library android:name="android.test.runner"/> +        <uses-library android:name="androidx.window.extensions" android:required="false"/> + +        <!-- (b/197936012) Remove startup provider due to test timeout issue --> +        <provider +            android:name="androidx.startup.InitializationProvider" +            android:authorities="${applicationId}.androidx-startup" +            tools:node="remove" /> +    </application> + +    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" +                     android:targetPackage="com.android.server.wm.flicker.notification" +                     android:label="WindowManager Flicker Tests"> +    </instrumentation> +</manifest> diff --git a/tests/FlickerTests/AndroidTestTemplate.xml b/tests/FlickerTests/Notification/AndroidTestTemplate.xml index ed71531d4eab..403685831be7 100644 --- a/tests/FlickerTests/AndroidTestTemplate.xml +++ b/tests/FlickerTests/Notification/AndroidTestTemplate.xml @@ -83,21 +83,7 @@      <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">          <option name="pull-pattern-keys" value="perfetto_file_path"/>          <option name="directory-keys" -                value="/data/user/0/com.android.server.wm.flicker/files"/> -        <option name="directory-keys" -                value="/data/user/0/com.android.server.wm.flicker.close/files"/> -        <option name="directory-keys" -                value="/data/user/0/com.android.server.wm.flicker.ime/files"/> -        <option name="directory-keys" -                value="/data/user/0/com.android.server.wm.flicker.launch/files"/> -        <option name="directory-keys" -                value="/data/user/0/com.android.server.wm.flicker.quickswitch/files"/> -        <option name="directory-keys" -                value="/data/user/0/com.android.server.wm.flicker.rotation/files"/> -        <option name="directory-keys"                  value="/data/user/0/com.android.server.wm.flicker.notification/files"/> -        <option name="directory-keys" -                value="/data/user/0/com.android.server.wm.flicker.service/files"/>          <option name="collect-on-run-ended-only" value="true"/>          <option name="clean-up" value="true"/>      </metrics_collector> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OWNERS b/tests/FlickerTests/Notification/OWNERS index 68c37bd82faa..68c37bd82faa 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OWNERS +++ b/tests/FlickerTests/Notification/OWNERS diff --git a/tests/FlickerTests/Notification/res/anim/show_hide_show_3000ms.xml b/tests/FlickerTests/Notification/res/anim/show_hide_show_3000ms.xml new file mode 100644 index 000000000000..7b3f07e3a2f5 --- /dev/null +++ b/tests/FlickerTests/Notification/res/anim/show_hide_show_3000ms.xml @@ -0,0 +1,31 @@ +<!-- +  ~ Copyright (C) 2022 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. +  --> + +<set +    xmlns:android="http://schemas.android.com/apk/res/android" +    android:fillAfter="true"> + +    <alpha +        android:fromAlpha="1.0" +        android:toAlpha="0.0" +        android:duration="1000" /> + +    <alpha +        android:startOffset="2000" +        android:fromAlpha="1.0" +        android:toAlpha="1.0" +        android:duration="1000" /> +</set>
\ No newline at end of file diff --git a/tests/FlickerTests/Notification/res/xml/network_security_config.xml b/tests/FlickerTests/Notification/res/xml/network_security_config.xml new file mode 100644 index 000000000000..4bd9ca049f55 --- /dev/null +++ b/tests/FlickerTests/Notification/res/xml/network_security_config.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<network-security-config> +    <domain-config cleartextTrafficPermitted="true"> +        <domain includeSubdomains="true">localhost</domain> +    </domain-config> +</network-security-config> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/Consts.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/Consts.kt index b81439e8a1d1..b81439e8a1d1 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/Consts.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/Consts.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt index 6819a38c9067..6819a38c9067 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt index 972221640363..972221640363 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt index ffd81716e728..ffd81716e728 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt index fbdba7b71d0f..fbdba7b71d0f 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt index 2aa444e45ea2..2aa444e45ea2 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt index 684b4b70f950..684b4b70f950 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt diff --git a/tests/FlickerTests/Notification/trace_config/trace_config.textproto b/tests/FlickerTests/Notification/trace_config/trace_config.textproto new file mode 100644 index 000000000000..c9a35aca9085 --- /dev/null +++ b/tests/FlickerTests/Notification/trace_config/trace_config.textproto @@ -0,0 +1,77 @@ +# Copyright (C) 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. + +# proto-message: TraceConfig + +# Enable periodic flushing of the trace buffer into the output file. +write_into_file: true + +# Writes the userspace buffer into the file every 1s. +file_write_period_ms: 2500 + +# See b/126487238 - we need to guarantee ordering of events. +flush_period_ms: 30000 + +# The trace buffers needs to be big enough to hold |file_write_period_ms| of +# trace data. The trace buffer sizing depends on the number of trace categories +# enabled and the device activity. + +# RSS events +buffers: { +  size_kb: 63488 +  fill_policy: RING_BUFFER +} + +data_sources { +  config { +    name: "linux.process_stats" +    target_buffer: 0 +    # polled per-process memory counters and process/thread names. +    # If you don't want the polled counters, remove the "process_stats_config" +    # section, but keep the data source itself as it still provides on-demand +    # thread/process naming for ftrace data below. +    process_stats_config { +      scan_all_processes_on_start: true +    } +  } +} + +data_sources: { +  config { +    name: "linux.ftrace" +    ftrace_config { +      ftrace_events: "ftrace/print" +      ftrace_events: "task/task_newtask" +      ftrace_events: "task/task_rename" +      atrace_categories: "ss" +      atrace_categories: "wm" +      atrace_categories: "am" +      atrace_categories: "aidl" +      atrace_categories: "input" +      atrace_categories: "binder_driver" +      atrace_categories: "sched_process_exit" +      atrace_apps: "com.android.server.wm.flicker" +      atrace_apps: "com.android.server.wm.flicker.other" +      atrace_apps: "com.android.server.wm.flicker.close" +      atrace_apps: "com.android.server.wm.flicker.ime" +      atrace_apps: "com.android.server.wm.flicker.launch" +      atrace_apps: "com.android.server.wm.flicker.quickswitch" +      atrace_apps: "com.android.server.wm.flicker.rotation" +      atrace_apps: "com.android.server.wm.flicker.testapp" +      atrace_apps: "com.android.systemui" +      atrace_apps: "com.google.android.apps.nexuslauncher" +    } +  } +} + diff --git a/tests/FlickerTests/QuickSwitch/Android.bp b/tests/FlickerTests/QuickSwitch/Android.bp new file mode 100644 index 000000000000..64f718333a59 --- /dev/null +++ b/tests/FlickerTests/QuickSwitch/Android.bp @@ -0,0 +1,33 @@ +// +// Copyright (C) 2018 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 { +    // See: http://go/android-license-faq +    // A large-scale-change added 'default_applicable_licenses' to import +    // all of the 'license_kinds' from "frameworks_base_license" +    // to get the below license kinds: +    //   SPDX-license-identifier-Apache-2.0 +    default_applicable_licenses: ["frameworks_base_license"], +} + +android_test { +    name: "FlickerTestsQuickswitch", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: ["src/**/*"], +    static_libs: ["FlickerTestsBase"], +} diff --git a/tests/FlickerTests/QuickSwitch/AndroidManifest.xml b/tests/FlickerTests/QuickSwitch/AndroidManifest.xml new file mode 100644 index 000000000000..41b0cd41f0ba --- /dev/null +++ b/tests/FlickerTests/QuickSwitch/AndroidManifest.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" +          xmlns:tools="http://schemas.android.com/tools" +          package="com.android.server.wm.flicker.quickswitch"> + +    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/> +    <!-- Read and write traces from external storage --> +    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> +    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> +    <!-- Allow the test to write directly to /sdcard/ --> +    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> +    <!-- Write secure settings --> +    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> +    <!-- Capture screen contents --> +    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" /> +    <!-- Enable / Disable tracing !--> +    <uses-permission android:name="android.permission.DUMP" /> +    <!-- Force-stop test apps --> +    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> +    <!-- Run layers trace --> +    <uses-permission android:name="android.permission.HARDWARE_TEST"/> +    <!-- Capture screen recording --> +    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/> +    <!-- Workaround grant runtime permission exception from b/152733071 --> +    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> +    <uses-permission android:name="android.permission.READ_LOGS"/> +    <!-- ATM.removeRootTasksWithActivityTypes() --> +    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> +    <!-- ActivityOptions.makeCustomTaskAnimation() --> +    <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> +    <!-- Allow the test to connect to perfetto trace processor --> +    <uses-permission android:name="android.permission.INTERNET"/> +    <!-- Allow the test to write directly to /sdcard/ and connect to trace processor --> +    <application android:requestLegacyExternalStorage="true" +                 android:networkSecurityConfig="@xml/network_security_config" +                 android:largeHeap="true"> +        <uses-library android:name="android.test.runner"/> +        <uses-library android:name="androidx.window.extensions" android:required="false"/> + +        <!-- (b/197936012) Remove startup provider due to test timeout issue --> +        <provider +            android:name="androidx.startup.InitializationProvider" +            android:authorities="${applicationId}.androidx-startup" +            tools:node="remove" /> +    </application> + +    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" +                     android:targetPackage="com.android.server.wm.flicker.quickswitch" +                     android:label="WindowManager Flicker Tests"> +    </instrumentation> +</manifest> diff --git a/tests/FlickerTests/QuickSwitch/AndroidTestTemplate.xml b/tests/FlickerTests/QuickSwitch/AndroidTestTemplate.xml new file mode 100644 index 000000000000..797ca4eacd5f --- /dev/null +++ b/tests/FlickerTests/QuickSwitch/AndroidTestTemplate.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + * Copyright 2018 Google Inc. All Rights Reserved. + --> +<configuration description="Runs WindowManager {MODULE}"> +    <option name="test-tag" value="FlickerTests"/> +    <!-- Needed for storing the perfetto trace files in the sdcard/test_results--> +    <option name="isolated-storage" value="false"/> + +    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> +        <!-- keeps the screen on during tests --> +        <option name="screen-always-on" value="on"/> +        <!-- prevents the phone from restarting --> +        <option name="force-skip-system-props" value="true"/> +        <!-- set WM tracing verbose level to all --> +        <option name="run-command" value="cmd window tracing level all"/> +        <!-- set WM tracing to frame (avoid incomplete states) --> +        <option name="run-command" value="cmd window tracing frame"/> +        <!-- ensure lock screen mode is swipe --> +        <option name="run-command" value="locksettings set-disabled false"/> +        <!-- disable betterbug as it's log collection dialogues cause flakes in e2e tests --> +        <option name="run-command" value="pm disable com.google.android.internal.betterbug"/> +        <!-- restart launcher to activate TAPL --> +        <option name="run-command" +                value="setprop ro.test_harness 1 ; am force-stop com.google.android.apps.nexuslauncher"/> +        <!-- Increase trace size: 20mb for WM and 80mb for SF --> +        <option name="run-command" value="cmd window tracing size 20480"/> +        <option name="run-command" value="su root service call SurfaceFlinger 1029 i32 81920"/> +        <!-- b/307664397 - Ensure camera has the correct permissions and doesn't show a dialog --> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.CAMERA"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.RECORD_AUDIO"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_FINE_LOCATION"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_COARSE_LOCATION"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> +        <option name="test-user-token" value="%TEST_USER%"/> +        <option name="run-command" value="rm -rf /data/user/%TEST_USER%/files/*"/> +        <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/> +        <option name="run-command" value="settings put system show_touches 1"/> +        <option name="run-command" value="settings put system pointer_location 1"/> +        <option name="teardown-command" +                value="settings delete secure show_ime_with_hard_keyboard"/> +        <option name="teardown-command" value="settings delete system show_touches"/> +        <option name="teardown-command" value="settings delete system pointer_location"/> +        <option name="teardown-command" +                value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> +        <option name="cleanup-apks" value="true"/> +        <option name="test-file-name" value="{MODULE}.apk"/> +        <option name="test-file-name" value="FlickerTestApp.apk"/> +    </target_preparer> +    <!-- Needed for pushing the trace config file --> +    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/> +    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> +        <option name="push-file" +                key="trace_config.textproto" +                value="/data/misc/perfetto-traces/trace_config.textproto" +        /> +        <!--Install the content provider automatically when we push some file in sdcard folder.--> +        <!--Needed to avoid the installation during the test suite.--> +        <option name="push-file" key="trace_config.textproto" value="/sdcard/sample.textproto"/> +    </target_preparer> +    <test class="com.android.tradefed.testtype.AndroidJUnitTest"> +        <option name="package" value="{PACKAGE}"/> +        <option name="shell-timeout" value="6600s"/> +        <option name="test-timeout" value="6600s"/> +        <option name="hidden-api-checks" value="false"/> +        <option name="device-listeners" value="android.device.collectors.PerfettoListener"/> +        <!-- PerfettoListener related arguments --> +        <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/> +        <option name="instrumentation-arg" +                key="perfetto_config_file" +                value="trace_config.textproto" +        /> +        <option name="instrumentation-arg" key="per_run" value="true"/> +    </test> +    <!-- Needed for pulling the collected trace config on to the host --> +    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> +        <option name="pull-pattern-keys" value="perfetto_file_path"/> +        <option name="directory-keys" +                value="/data/user/0/com.android.server.wm.flicker.quickswitch/files"/> +        <option name="collect-on-run-ended-only" value="true"/> +        <option name="clean-up" value="true"/> +    </metrics_collector> +</configuration> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/OWNERS b/tests/FlickerTests/QuickSwitch/OWNERS index 897fe5dee7fb..897fe5dee7fb 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/OWNERS +++ b/tests/FlickerTests/QuickSwitch/OWNERS diff --git a/tests/FlickerTests/QuickSwitch/res/anim/show_hide_show_3000ms.xml b/tests/FlickerTests/QuickSwitch/res/anim/show_hide_show_3000ms.xml new file mode 100644 index 000000000000..7b3f07e3a2f5 --- /dev/null +++ b/tests/FlickerTests/QuickSwitch/res/anim/show_hide_show_3000ms.xml @@ -0,0 +1,31 @@ +<!-- +  ~ Copyright (C) 2022 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. +  --> + +<set +    xmlns:android="http://schemas.android.com/apk/res/android" +    android:fillAfter="true"> + +    <alpha +        android:fromAlpha="1.0" +        android:toAlpha="0.0" +        android:duration="1000" /> + +    <alpha +        android:startOffset="2000" +        android:fromAlpha="1.0" +        android:toAlpha="1.0" +        android:duration="1000" /> +</set>
\ No newline at end of file diff --git a/tests/FlickerTests/QuickSwitch/res/xml/network_security_config.xml b/tests/FlickerTests/QuickSwitch/res/xml/network_security_config.xml new file mode 100644 index 000000000000..4bd9ca049f55 --- /dev/null +++ b/tests/FlickerTests/QuickSwitch/res/xml/network_security_config.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<network-security-config> +    <domain-config cleartextTrafficPermitted="true"> +        <domain includeSubdomains="true">localhost</domain> +    </domain-config> +</network-security-config> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt b/tests/FlickerTests/QuickSwitch/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt index 13fcc2ba0b54..13fcc2ba0b54 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt +++ b/tests/FlickerTests/QuickSwitch/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt b/tests/FlickerTests/QuickSwitch/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt index badd7c8c712c..badd7c8c712c 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt +++ b/tests/FlickerTests/QuickSwitch/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt b/tests/FlickerTests/QuickSwitch/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt index f51be908750a..f51be908750a 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt +++ b/tests/FlickerTests/QuickSwitch/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt diff --git a/tests/FlickerTests/QuickSwitch/trace_config/trace_config.textproto b/tests/FlickerTests/QuickSwitch/trace_config/trace_config.textproto new file mode 100644 index 000000000000..c9a35aca9085 --- /dev/null +++ b/tests/FlickerTests/QuickSwitch/trace_config/trace_config.textproto @@ -0,0 +1,77 @@ +# Copyright (C) 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. + +# proto-message: TraceConfig + +# Enable periodic flushing of the trace buffer into the output file. +write_into_file: true + +# Writes the userspace buffer into the file every 1s. +file_write_period_ms: 2500 + +# See b/126487238 - we need to guarantee ordering of events. +flush_period_ms: 30000 + +# The trace buffers needs to be big enough to hold |file_write_period_ms| of +# trace data. The trace buffer sizing depends on the number of trace categories +# enabled and the device activity. + +# RSS events +buffers: { +  size_kb: 63488 +  fill_policy: RING_BUFFER +} + +data_sources { +  config { +    name: "linux.process_stats" +    target_buffer: 0 +    # polled per-process memory counters and process/thread names. +    # If you don't want the polled counters, remove the "process_stats_config" +    # section, but keep the data source itself as it still provides on-demand +    # thread/process naming for ftrace data below. +    process_stats_config { +      scan_all_processes_on_start: true +    } +  } +} + +data_sources: { +  config { +    name: "linux.ftrace" +    ftrace_config { +      ftrace_events: "ftrace/print" +      ftrace_events: "task/task_newtask" +      ftrace_events: "task/task_rename" +      atrace_categories: "ss" +      atrace_categories: "wm" +      atrace_categories: "am" +      atrace_categories: "aidl" +      atrace_categories: "input" +      atrace_categories: "binder_driver" +      atrace_categories: "sched_process_exit" +      atrace_apps: "com.android.server.wm.flicker" +      atrace_apps: "com.android.server.wm.flicker.other" +      atrace_apps: "com.android.server.wm.flicker.close" +      atrace_apps: "com.android.server.wm.flicker.ime" +      atrace_apps: "com.android.server.wm.flicker.launch" +      atrace_apps: "com.android.server.wm.flicker.quickswitch" +      atrace_apps: "com.android.server.wm.flicker.rotation" +      atrace_apps: "com.android.server.wm.flicker.testapp" +      atrace_apps: "com.android.systemui" +      atrace_apps: "com.google.android.apps.nexuslauncher" +    } +  } +} + diff --git a/tests/FlickerTests/Rotation/Android.bp b/tests/FlickerTests/Rotation/Android.bp new file mode 100644 index 000000000000..8e93b5b340c4 --- /dev/null +++ b/tests/FlickerTests/Rotation/Android.bp @@ -0,0 +1,33 @@ +// +// Copyright (C) 2018 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 { +    // See: http://go/android-license-faq +    // A large-scale-change added 'default_applicable_licenses' to import +    // all of the 'license_kinds' from "frameworks_base_license" +    // to get the below license kinds: +    //   SPDX-license-identifier-Apache-2.0 +    default_applicable_licenses: ["frameworks_base_license"], +} + +android_test { +    name: "FlickerTestsRotation", +    defaults: ["FlickerTestsDefault"], +    manifest: "AndroidManifest.xml", +    test_config_template: "AndroidTestTemplate.xml", +    srcs: ["src/**/*"], +    static_libs: ["FlickerTestsBase"], +} diff --git a/tests/FlickerTests/Rotation/AndroidManifest.xml b/tests/FlickerTests/Rotation/AndroidManifest.xml new file mode 100644 index 000000000000..6bbb1f6c0d08 --- /dev/null +++ b/tests/FlickerTests/Rotation/AndroidManifest.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" +          xmlns:tools="http://schemas.android.com/tools" +          package="com.android.server.wm.flicker.rotation"> + +    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/> +    <!-- Read and write traces from external storage --> +    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> +    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> +    <!-- Allow the test to write directly to /sdcard/ --> +    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> +    <!-- Write secure settings --> +    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> +    <!-- Capture screen contents --> +    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" /> +    <!-- Enable / Disable tracing !--> +    <uses-permission android:name="android.permission.DUMP" /> +    <!-- Force-stop test apps --> +    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> +    <!-- Run layers trace --> +    <uses-permission android:name="android.permission.HARDWARE_TEST"/> +    <!-- Capture screen recording --> +    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/> +    <!-- Workaround grant runtime permission exception from b/152733071 --> +    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> +    <uses-permission android:name="android.permission.READ_LOGS"/> +    <!-- ATM.removeRootTasksWithActivityTypes() --> +    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> +    <!-- ActivityOptions.makeCustomTaskAnimation() --> +    <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> +    <!-- Allow the test to connect to perfetto trace processor --> +    <uses-permission android:name="android.permission.INTERNET"/> +    <!-- Allow the test to write directly to /sdcard/ and connect to trace processor --> +    <application android:requestLegacyExternalStorage="true" +                 android:networkSecurityConfig="@xml/network_security_config" +                 android:largeHeap="true"> +        <uses-library android:name="android.test.runner"/> +        <uses-library android:name="androidx.window.extensions" android:required="false"/> + +        <!-- (b/197936012) Remove startup provider due to test timeout issue --> +        <provider +            android:name="androidx.startup.InitializationProvider" +            android:authorities="${applicationId}.androidx-startup" +            tools:node="remove" /> +    </application> + +    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" +                     android:targetPackage="com.android.server.wm.flicker.rotation" +                     android:label="WindowManager Flicker Tests"> +    </instrumentation> +</manifest> diff --git a/tests/FlickerTests/Rotation/AndroidTestTemplate.xml b/tests/FlickerTests/Rotation/AndroidTestTemplate.xml new file mode 100644 index 000000000000..b5ea7390e9ba --- /dev/null +++ b/tests/FlickerTests/Rotation/AndroidTestTemplate.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + * Copyright 2018 Google Inc. All Rights Reserved. + --> +<configuration description="Runs WindowManager {MODULE}"> +    <option name="test-tag" value="FlickerTests"/> +    <!-- Needed for storing the perfetto trace files in the sdcard/test_results--> +    <option name="isolated-storage" value="false"/> + +    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> +        <!-- keeps the screen on during tests --> +        <option name="screen-always-on" value="on"/> +        <!-- prevents the phone from restarting --> +        <option name="force-skip-system-props" value="true"/> +        <!-- set WM tracing verbose level to all --> +        <option name="run-command" value="cmd window tracing level all"/> +        <!-- set WM tracing to frame (avoid incomplete states) --> +        <option name="run-command" value="cmd window tracing frame"/> +        <!-- ensure lock screen mode is swipe --> +        <option name="run-command" value="locksettings set-disabled false"/> +        <!-- disable betterbug as it's log collection dialogues cause flakes in e2e tests --> +        <option name="run-command" value="pm disable com.google.android.internal.betterbug"/> +        <!-- restart launcher to activate TAPL --> +        <option name="run-command" +                value="setprop ro.test_harness 1 ; am force-stop com.google.android.apps.nexuslauncher"/> +        <!-- Increase trace size: 20mb for WM and 80mb for SF --> +        <option name="run-command" value="cmd window tracing size 20480"/> +        <option name="run-command" value="su root service call SurfaceFlinger 1029 i32 81920"/> +        <!-- b/307664397 - Ensure camera has the correct permissions and doesn't show a dialog --> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.CAMERA"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.RECORD_AUDIO"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_FINE_LOCATION"/> +        <option name="run-command" +                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_COARSE_LOCATION"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> +        <option name="test-user-token" value="%TEST_USER%"/> +        <option name="run-command" value="rm -rf /data/user/%TEST_USER%/files/*"/> +        <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/> +        <option name="run-command" value="settings put system show_touches 1"/> +        <option name="run-command" value="settings put system pointer_location 1"/> +        <option name="teardown-command" +                value="settings delete secure show_ime_with_hard_keyboard"/> +        <option name="teardown-command" value="settings delete system show_touches"/> +        <option name="teardown-command" value="settings delete system pointer_location"/> +        <option name="teardown-command" +                value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/> +    </target_preparer> +    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> +        <option name="cleanup-apks" value="true"/> +        <option name="test-file-name" value="{MODULE}.apk"/> +        <option name="test-file-name" value="FlickerTestApp.apk"/> +    </target_preparer> +    <!-- Needed for pushing the trace config file --> +    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/> +    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> +        <option name="push-file" +                key="trace_config.textproto" +                value="/data/misc/perfetto-traces/trace_config.textproto" +        /> +        <!--Install the content provider automatically when we push some file in sdcard folder.--> +        <!--Needed to avoid the installation during the test suite.--> +        <option name="push-file" key="trace_config.textproto" value="/sdcard/sample.textproto"/> +    </target_preparer> +    <test class="com.android.tradefed.testtype.AndroidJUnitTest"> +        <option name="package" value="{PACKAGE}"/> +        <option name="shell-timeout" value="6600s"/> +        <option name="test-timeout" value="6600s"/> +        <option name="hidden-api-checks" value="false"/> +        <option name="device-listeners" value="android.device.collectors.PerfettoListener"/> +        <!-- PerfettoListener related arguments --> +        <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/> +        <option name="instrumentation-arg" +                key="perfetto_config_file" +                value="trace_config.textproto" +        /> +        <option name="instrumentation-arg" key="per_run" value="true"/> +    </test> +    <!-- Needed for pulling the collected trace config on to the host --> +    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> +        <option name="pull-pattern-keys" value="perfetto_file_path"/> +        <option name="directory-keys" +                value="/data/user/0/com.android.server.wm.flicker.rotation/files"/> +        <option name="collect-on-run-ended-only" value="true"/> +        <option name="clean-up" value="true"/> +    </metrics_collector> +</configuration> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/OWNERS b/tests/FlickerTests/Rotation/OWNERS index f7c0a87f5dac..f7c0a87f5dac 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/OWNERS +++ b/tests/FlickerTests/Rotation/OWNERS diff --git a/tests/FlickerTests/Rotation/res/anim/show_hide_show_3000ms.xml b/tests/FlickerTests/Rotation/res/anim/show_hide_show_3000ms.xml new file mode 100644 index 000000000000..7b3f07e3a2f5 --- /dev/null +++ b/tests/FlickerTests/Rotation/res/anim/show_hide_show_3000ms.xml @@ -0,0 +1,31 @@ +<!-- +  ~ Copyright (C) 2022 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. +  --> + +<set +    xmlns:android="http://schemas.android.com/apk/res/android" +    android:fillAfter="true"> + +    <alpha +        android:fromAlpha="1.0" +        android:toAlpha="0.0" +        android:duration="1000" /> + +    <alpha +        android:startOffset="2000" +        android:fromAlpha="1.0" +        android:toAlpha="1.0" +        android:duration="1000" /> +</set>
\ No newline at end of file diff --git a/tests/FlickerTests/Rotation/res/xml/network_security_config.xml b/tests/FlickerTests/Rotation/res/xml/network_security_config.xml new file mode 100644 index 000000000000..4bd9ca049f55 --- /dev/null +++ b/tests/FlickerTests/Rotation/res/xml/network_security_config.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +  ~ Copyright (C) 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. +  --> + +<network-security-config> +    <domain-config cleartextTrafficPermitted="true"> +        <domain includeSubdomains="true">localhost</domain> +    </domain-config> +</network-security-config> diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt b/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt index bdbf0d24e624..bdbf0d24e624 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt +++ b/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/RotationTransition.kt b/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/RotationTransition.kt index b0ca4d230e12..b0ca4d230e12 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/RotationTransition.kt +++ b/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/RotationTransition.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt b/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt index 6d3ae43c1472..6d3ae43c1472 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt +++ b/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt diff --git a/tests/FlickerTests/Rotation/trace_config/trace_config.textproto b/tests/FlickerTests/Rotation/trace_config/trace_config.textproto new file mode 100644 index 000000000000..c9a35aca9085 --- /dev/null +++ b/tests/FlickerTests/Rotation/trace_config/trace_config.textproto @@ -0,0 +1,77 @@ +# Copyright (C) 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. + +# proto-message: TraceConfig + +# Enable periodic flushing of the trace buffer into the output file. +write_into_file: true + +# Writes the userspace buffer into the file every 1s. +file_write_period_ms: 2500 + +# See b/126487238 - we need to guarantee ordering of events. +flush_period_ms: 30000 + +# The trace buffers needs to be big enough to hold |file_write_period_ms| of +# trace data. The trace buffer sizing depends on the number of trace categories +# enabled and the device activity. + +# RSS events +buffers: { +  size_kb: 63488 +  fill_policy: RING_BUFFER +} + +data_sources { +  config { +    name: "linux.process_stats" +    target_buffer: 0 +    # polled per-process memory counters and process/thread names. +    # If you don't want the polled counters, remove the "process_stats_config" +    # section, but keep the data source itself as it still provides on-demand +    # thread/process naming for ftrace data below. +    process_stats_config { +      scan_all_processes_on_start: true +    } +  } +} + +data_sources: { +  config { +    name: "linux.ftrace" +    ftrace_config { +      ftrace_events: "ftrace/print" +      ftrace_events: "task/task_newtask" +      ftrace_events: "task/task_rename" +      atrace_categories: "ss" +      atrace_categories: "wm" +      atrace_categories: "am" +      atrace_categories: "aidl" +      atrace_categories: "input" +      atrace_categories: "binder_driver" +      atrace_categories: "sched_process_exit" +      atrace_apps: "com.android.server.wm.flicker" +      atrace_apps: "com.android.server.wm.flicker.other" +      atrace_apps: "com.android.server.wm.flicker.close" +      atrace_apps: "com.android.server.wm.flicker.ime" +      atrace_apps: "com.android.server.wm.flicker.launch" +      atrace_apps: "com.android.server.wm.flicker.quickswitch" +      atrace_apps: "com.android.server.wm.flicker.rotation" +      atrace_apps: "com.android.server.wm.flicker.testapp" +      atrace_apps: "com.android.systemui" +      atrace_apps: "com.google.android.apps.nexuslauncher" +    } +  } +} + diff --git a/tests/FlickerTests/manifests/AndroidManifestNotification.xml b/tests/FlickerTests/manifests/AndroidManifestNotification.xml deleted file mode 100644 index ad33deef8cc3..000000000000 --- a/tests/FlickerTests/manifests/AndroidManifestNotification.xml +++ /dev/null @@ -1,24 +0,0 @@ -<!-- -  ~ Copyright (C) 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. -  --> - -<manifest xmlns:android="http://schemas.android.com/apk/res/android" -    package="com.android.server.wm.flicker.close"> - -    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" -                     android:targetPackage="com.android.server.wm.flicker.notification" -                     android:label="WindowManager Flicker Tests"> -    </instrumentation> -</manifest> diff --git a/tests/FlickerTests/manifests/AndroidManifestQuickswitch.xml b/tests/FlickerTests/manifests/AndroidManifestQuickswitch.xml deleted file mode 100644 index 203035d30584..000000000000 --- a/tests/FlickerTests/manifests/AndroidManifestQuickswitch.xml +++ /dev/null @@ -1,24 +0,0 @@ -<!-- -  ~ Copyright (C) 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. -  --> - -<manifest xmlns:android="http://schemas.android.com/apk/res/android" -    package="com.android.server.wm.flicker.quickswitch"> - -    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" -                     android:targetPackage="com.android.server.wm.flicker.quickswitch" -                     android:label="WindowManager Flicker Tests"> -    </instrumentation> -</manifest> diff --git a/tests/FlickerTests/manifests/AndroidManifestRotation.xml b/tests/FlickerTests/manifests/AndroidManifestRotation.xml deleted file mode 100644 index 2852cf23a35b..000000000000 --- a/tests/FlickerTests/manifests/AndroidManifestRotation.xml +++ /dev/null @@ -1,24 +0,0 @@ -<!-- -  ~ Copyright (C) 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. -  --> - -<manifest xmlns:android="http://schemas.android.com/apk/res/android" -    package="com.android.server.wm.flicker.rotation"> - -    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" -                     android:targetPackage="com.android.server.wm.flicker.rotation" -                     android:label="WindowManager Flicker Tests"> -    </instrumentation> -</manifest> diff --git a/tests/FlickerTests/manifests/AndroidManifestService.xml b/tests/FlickerTests/manifests/AndroidManifestService.xml deleted file mode 100644 index 3a7bc5095c08..000000000000 --- a/tests/FlickerTests/manifests/AndroidManifestService.xml +++ /dev/null @@ -1,24 +0,0 @@ -<!-- -  ~ Copyright (C) 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. -  --> - -<manifest xmlns:android="http://schemas.android.com/apk/res/android" -    package="com.android.server.wm.flicker.service"> - -    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" -                     android:targetPackage="com.android.server.wm.flicker.service" -                     android:label="WindowManager Flicker Service Tests"> -    </instrumentation> -</manifest> diff --git a/tests/FlickerTests/test-apps/app-helpers/Android.bp b/tests/FlickerTests/test-apps/app-helpers/Android.bp new file mode 100644 index 000000000000..fc4d71c652d5 --- /dev/null +++ b/tests/FlickerTests/test-apps/app-helpers/Android.bp @@ -0,0 +1,42 @@ +// +// Copyright (C) 2018 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 { +    // See: http://go/android-license-faq +    // A large-scale-change added 'default_applicable_licenses' to import +    // all of the 'license_kinds' from "frameworks_base_license" +    // to get the below license kinds: +    //   SPDX-license-identifier-Apache-2.0 +    default_applicable_licenses: ["frameworks_base_license"], +} + +java_library { +    name: "wm-flicker-common-app-helpers", +    platform_apis: true, +    optimize: { +        enabled: false, +    }, +    srcs: ["src/**/*"], +    static_libs: [ +        "flickertestapplib", +        "flickerlib", +        "flickerlib-apphelpers", +        "flickerlib-helpers", +        "truth", +        "app-helpers-core", +        "wm-flicker-window-extensions", +    ], +} diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt index 11e6bbe4eb13..11e6bbe4eb13 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/AppPairsHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/AppPairsHelper.kt index 94ac1a6e1e02..94ac1a6e1e02 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/AppPairsHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/AppPairsHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/AssistantAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/AssistantAppHelper.kt index fde098199042..fde098199042 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/AssistantAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/AssistantAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt index c6fa1bb89220..c6fa1bb89220 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt index 5c8cbe49d7cf..5c8cbe49d7cf 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt index 3146139757c1..3146139757c1 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GestureHelper.java b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/GestureHelper.java index eeee7b4dfc6b..eeee7b4dfc6b 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GestureHelper.java +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/GestureHelper.java diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt index 252f7d3e1bed..252f7d3e1bed 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt index 7a8d780c3d9f..7a8d780c3d9f 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeShownOnAppStartHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeShownOnAppStartHelper.kt index e106f656ec64..d3cee645cd99 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeShownOnAppStartHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeShownOnAppStartHelper.kt @@ -121,7 +121,7 @@ constructor(                      else -> null                  }              if (matcher != null && matcher.find()) { -                return matcher.group(1).equals("VISIBLE") +                return matcher.group(1) == "VISIBLE"              }          }          return false diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt index b2aeb14aaf78..b2aeb14aaf78 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt index b95d86b72f34..b95d86b72f34 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LetterboxAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/LetterboxAppHelper.kt index 9b539c8641d4..9b539c8641d4 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LetterboxAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/LetterboxAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt index 9895bda7f590..9895bda7f590 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt index 65175ef33afb..65175ef33afb 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt index b2f8d4748c07..b2f8d4748c07 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt index ee65004e9e78..ee65004e9e78 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt index e60c20df9967..e60c20df9967 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt index da51eff24dc1..73cc2f2b4d18 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt @@ -250,11 +250,12 @@ open class PipAppHelper(instrumentation: Instrumentation) :              launchedAppComponentMatcherOverride,              action,              stringExtras, -            waitConditionsBuilder = wmHelper -                .StateSyncBuilder() -                .add(ConditionsFactory.isWMStateComplete()) -                .withAppTransitionIdle() -                .add(ConditionsFactory.hasPipWindow()) +            waitConditionsBuilder = +                wmHelper +                    .StateSyncBuilder() +                    .add(ConditionsFactory.isWMStateComplete()) +                    .withAppTransitionIdle() +                    .add(ConditionsFactory.hasPipWindow())          )          wmHelper @@ -265,8 +266,7 @@ open class PipAppHelper(instrumentation: Instrumentation) :      }      /** Expand the PIP window back to full screen via intent and wait until the app is visible */ -    fun exitPipToFullScreenViaIntent(wmHelper: WindowManagerStateHelper) = -        launchViaIntent(wmHelper) +    fun exitPipToFullScreenViaIntent(wmHelper: WindowManagerStateHelper) = launchViaIntent(wmHelper)      fun changeAspectRatio() {          val intent = Intent("com.android.wm.shell.flicker.testapp.ASPECT_RATIO") diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt index cac3530399de..cac3530399de 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt index 8366a7a1fe41..8366a7a1fe41 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt index 89c6c35af47d..89c6c35af47d 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TransferSplashscreenAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/TransferSplashscreenAppHelper.kt index 6311678f1a04..6311678f1a04 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TransferSplashscreenAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/TransferSplashscreenAppHelper.kt diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt index 8be5769f47cf..8be5769f47cf 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt  |