xref: /aosp_15_r20/frameworks/base/tests/FlickerTests/IME/AndroidTestTemplate.xml (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3 * Copyright 2018 Google Inc. All Rights Reserved.
4 -->
5<configuration description="Runs WindowManager {MODULE}">
6    <option name="test-tag" value="FlickerTests"/>
7    <!-- Needed for storing the perfetto trace files in the sdcard/test_results-->
8    <option name="isolated-storage" value="false"/>
9
10    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup">
11        <!-- disable DeprecatedTargetSdk warning -->
12        <option name="run-command" value="setprop debug.wm.disable_deprecated_target_sdk_dialog 1"/>
13        <!-- keeps the screen on during tests -->
14        <option name="screen-always-on" value="on"/>
15        <!-- Turns off Wi-fi -->
16        <option name="wifi" value="off"/>
17        <!-- Turns off Bluetooth -->
18        <option name="bluetooth" value="off"/>
19        <!-- enable AOD -->
20        <option name="set-secure-setting" key="doze_always_on" value="1" />
21        <!-- prevents the phone from restarting -->
22        <option name="force-skip-system-props" value="true"/>
23        <!-- set WM tracing verbose level to all -->
24        <option name="run-command" value="cmd window tracing level all"/>
25        <!-- set WM tracing to frame (avoid incomplete states) -->
26        <option name="run-command" value="cmd window tracing frame"/>
27        <!-- ensure lock screen mode is swipe -->
28        <option name="run-command" value="locksettings set-disabled false"/>
29        <!-- disable betterbug as it's log collection dialogues cause flakes in e2e tests -->
30        <option name="run-command" value="pm disable com.google.android.internal.betterbug"/>
31        <!-- restart launcher to activate TAPL -->
32        <option name="run-command"
33                value="setprop ro.test_harness 1 ; am force-stop com.google.android.apps.nexuslauncher"/>
34        <!-- Increase trace size: 20mb for WM and 80mb for SF -->
35        <option name="run-command" value="cmd window tracing size 20480"/>
36        <option name="run-command" value="su root service call SurfaceFlinger 1029 i32 81920"/>
37        <!-- b/307664397 - Ensure camera has the correct permissions and doesn't show a dialog -->
38        <option name="run-command"
39                value="pm grant com.google.android.GoogleCamera android.permission.CAMERA"/>
40        <option name="run-command"
41                value="pm grant com.google.android.GoogleCamera android.permission.RECORD_AUDIO"/>
42        <option name="run-command"
43                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_FINE_LOCATION"/>
44        <option name="run-command"
45                value="pm grant com.google.android.GoogleCamera android.permission.ACCESS_COARSE_LOCATION"/>
46    </target_preparer>
47    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
48        <option name="test-user-token" value="%TEST_USER%"/>
49        <option name="run-command" value="rm -rf /data/user/%TEST_USER%/files/*"/>
50        <!-- Disable AOD -->
51        <option name="run-command" value="settings put secure doze_always_on 0"/>
52        <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/>
53        <option name="run-command" value="settings put system show_touches 1"/>
54        <option name="run-command" value="settings put system pointer_location 1"/>
55        <option name="teardown-command"
56                value="settings delete secure show_ime_with_hard_keyboard"/>
57        <option name="teardown-command" value="settings delete system show_touches"/>
58        <option name="teardown-command" value="settings delete system pointer_location"/>
59        <option name="teardown-command"
60                value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/>
61    </target_preparer>
62    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
63        <option name="cleanup-apks" value="true"/>
64        <option name="test-file-name" value="{MODULE}.apk"/>
65        <option name="test-file-name" value="FlickerTestApp.apk"/>
66    </target_preparer>
67    <!-- Needed for pushing the trace config file -->
68    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>
69    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
70        <option name="push-file"
71                key="trace_config.textproto"
72                value="/data/misc/perfetto-traces/trace_config.textproto"
73        />
74        <!--Install the content provider automatically when we push some file in sdcard folder.-->
75        <!--Needed to avoid the installation during the test suite.-->
76        <option name="push-file" key="trace_config.textproto" value="/sdcard/sample.textproto"/>
77    </target_preparer>
78    <test class="com.android.tradefed.testtype.AndroidJUnitTest">
79        <option name="package" value="{PACKAGE}"/>
80        <option name="shell-timeout" value="6600s"/>
81        <option name="test-timeout" value="6600s"/>
82        <option name="hidden-api-checks" value="false"/>
83        <option name="device-listeners" value="android.device.collectors.PerfettoListener"/>
84        <!-- PerfettoListener related arguments -->
85        <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/>
86        <option name="instrumentation-arg"
87                key="perfetto_config_file"
88                value="trace_config.textproto"
89        />
90        <option name="instrumentation-arg" key="per_run" value="true"/>
91        <option name="instrumentation-arg" key="perfetto_persist_pid_track" value="true"/>
92    </test>
93    <!-- Needed for pulling the collected trace config on to the host -->
94    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
95        <option name="pull-pattern-keys" value="perfetto_file_path"/>
96        <option name="directory-keys"
97                value="/data/user/0/com.android.server.wm.flicker.ime/files"/>
98        <option name="collect-on-run-ended-only" value="true"/>
99        <option name="clean-up" value="true"/>
100    </metrics_collector>
101</configuration>
102