Loading libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/Android.bp 0 → 100644 +46 −0 Original line number Diff line number Diff line // // Copyright (C) 2025 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: "WMShellSmokeTestsDesktopMode", defaults: ["WMShellFlickerTestsDefault"], manifest: "AndroidManifest.xml", test_config_template: "AndroidTestTemplate.xml", srcs: ["src/**/*.kt"], static_libs: [ "WMShellFlickerTestsBase", "WMShellTestUtils", "androidx.test.ext.junit", "desktop-test-lib", "flickerlib-helpers", "flickerlib-trace_processor_shell", "flickertestapplib", "launcher-aosp-tapl", "launcher-helper-lib", "platform-test-annotations", "wm-flicker-common-app-helpers", "wm-shell-flicker-utils", ], } libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/AndroidManifest.xml 0 → 100644 +66 −0 Original line number Diff line number Diff line <!-- ~ Copyright (C) 2025 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.wm.shell"> <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" /> <!-- 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"/> <!-- Force-stop test apps --> <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> <!-- Control test app's media session --> <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/> <!-- ATM.removeRootTasksWithActivityTypes() --> <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> <!-- Enable bubble notification--> <uses-permission android:name="android.permission.STATUS_BAR_SERVICE" /> <!-- Allow the test to connect to perfetto trace processor --> <uses-permission android:name="android.permission.INTERNET"/> <!-- Use trusted virtual displays to emulate an external display --> <uses-permission android:name="android.permission.ADD_TRUSTED_DISPLAY"/> <uses-permission android:name="android.permission.MANAGE_DISPLAYS" /> <uses-permission android:name="android.permission.INJECT_EVENTS" /> <uses-permission android:name="android.permission.SET_POINTER_SPEED" /> <application android:requestLegacyExternalStorage="true" android:networkSecurityConfig="@xml/network_security_config" android:largeHeap="true"> <uses-library android:name="android.test.runner"/> </application> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="com.android.wm.shell" android:label="WindowManager Shell Smoke Tests"> </instrumentation> </manifest> libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/AndroidTestTemplate.xml 0 → 100644 +83 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2025 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. --> <configuration description="Runs WindowManager Shell Smoke Tests {MODULE}"> <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> <!-- disable DeprecatedTargetSdk warning --> <option name="run-command" value="setprop debug.wm.disable_deprecated_target_sdk_dialog 1"/> <!-- keeps the screen on during tests --> <option name="screen-always-on" value="on"/> <!-- Turns off Wi-fi --> <option name="wifi" value="off"/> <!-- Turns off Bluetooth --> <option name="bluetooth" value="off"/> <!-- 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"/> <!-- 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"/> <!-- ensure lock screen mode is swipe --> <option name="run-command" value="locksettings set-disabled false"/> <!-- 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"/> </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"/> <!-- Unlock screen --> <option name="run-command" value="input keyevent KEYCODE_WAKEUP" /> <!-- Dismiss keyguard, in case it's set as "Swipe to unlock" --> <option name="run-command" value="wm dismiss-keyguard" /> </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"> <option name="force-root" value="true" /> </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="6000s"/> <option name="hidden-api-checks" value="false"/> </test> <!-- Needed for pulling the collected trace config and screenrecord to the host --> <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> <option name="directory-keys" value="/data/user/0/com.android.wm.shell/files"/> <option name="collect-on-run-ended-only" value="true"/> <option name="clean-up" value="true"/> </metrics_collector> </configuration> libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/TEST_MAPPING 0 → 100644 +7 −0 Original line number Diff line number Diff line { "wm-devices": [ { "name": "WMShellSmokeTestsDesktopMode" } ] } No newline at end of file libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/res/xml/network_security_config.xml 0 → 100644 +22 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2025 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> Loading
libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/Android.bp 0 → 100644 +46 −0 Original line number Diff line number Diff line // // Copyright (C) 2025 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: "WMShellSmokeTestsDesktopMode", defaults: ["WMShellFlickerTestsDefault"], manifest: "AndroidManifest.xml", test_config_template: "AndroidTestTemplate.xml", srcs: ["src/**/*.kt"], static_libs: [ "WMShellFlickerTestsBase", "WMShellTestUtils", "androidx.test.ext.junit", "desktop-test-lib", "flickerlib-helpers", "flickerlib-trace_processor_shell", "flickertestapplib", "launcher-aosp-tapl", "launcher-helper-lib", "platform-test-annotations", "wm-flicker-common-app-helpers", "wm-shell-flicker-utils", ], }
libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/AndroidManifest.xml 0 → 100644 +66 −0 Original line number Diff line number Diff line <!-- ~ Copyright (C) 2025 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.wm.shell"> <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" /> <!-- 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"/> <!-- Force-stop test apps --> <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> <!-- Control test app's media session --> <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/> <!-- ATM.removeRootTasksWithActivityTypes() --> <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> <!-- Enable bubble notification--> <uses-permission android:name="android.permission.STATUS_BAR_SERVICE" /> <!-- Allow the test to connect to perfetto trace processor --> <uses-permission android:name="android.permission.INTERNET"/> <!-- Use trusted virtual displays to emulate an external display --> <uses-permission android:name="android.permission.ADD_TRUSTED_DISPLAY"/> <uses-permission android:name="android.permission.MANAGE_DISPLAYS" /> <uses-permission android:name="android.permission.INJECT_EVENTS" /> <uses-permission android:name="android.permission.SET_POINTER_SPEED" /> <application android:requestLegacyExternalStorage="true" android:networkSecurityConfig="@xml/network_security_config" android:largeHeap="true"> <uses-library android:name="android.test.runner"/> </application> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="com.android.wm.shell" android:label="WindowManager Shell Smoke Tests"> </instrumentation> </manifest>
libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/AndroidTestTemplate.xml 0 → 100644 +83 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2025 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. --> <configuration description="Runs WindowManager Shell Smoke Tests {MODULE}"> <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> <!-- disable DeprecatedTargetSdk warning --> <option name="run-command" value="setprop debug.wm.disable_deprecated_target_sdk_dialog 1"/> <!-- keeps the screen on during tests --> <option name="screen-always-on" value="on"/> <!-- Turns off Wi-fi --> <option name="wifi" value="off"/> <!-- Turns off Bluetooth --> <option name="bluetooth" value="off"/> <!-- 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"/> <!-- 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"/> <!-- ensure lock screen mode is swipe --> <option name="run-command" value="locksettings set-disabled false"/> <!-- 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"/> </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"/> <!-- Unlock screen --> <option name="run-command" value="input keyevent KEYCODE_WAKEUP" /> <!-- Dismiss keyguard, in case it's set as "Swipe to unlock" --> <option name="run-command" value="wm dismiss-keyguard" /> </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"> <option name="force-root" value="true" /> </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="6000s"/> <option name="hidden-api-checks" value="false"/> </test> <!-- Needed for pulling the collected trace config and screenrecord to the host --> <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> <option name="directory-keys" value="/data/user/0/com.android.wm.shell/files"/> <option name="collect-on-run-ended-only" value="true"/> <option name="clean-up" value="true"/> </metrics_collector> </configuration>
libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/TEST_MAPPING 0 → 100644 +7 −0 Original line number Diff line number Diff line { "wm-devices": [ { "name": "WMShellSmokeTestsDesktopMode" } ] } No newline at end of file
libs/WindowManager/Shell/tests/e2e/desktopmode/smoke/res/xml/network_security_config.xml 0 → 100644 +22 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2025 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>