Measure latency caused by IMF for IME operations like show / hide. This CL uses apct tests for integration with Crystallball to measure overall latency and breakdown of critical IMF methods. In this CL we introduce a BaselineIme with minimal UI to measure user-preceived delays in IME show/hide. Refer to design doc in bug. Bug: 167947940 Test: atest ImePerfTests and also refer to README.md Change-Id: I8efff52fe25952d452aef7f059400c63d1a9fa4a
74 lines
4.1 KiB
XML
74 lines
4.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- Copyright (C) 2020 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 ImePerfTests metric instrumentation.">
|
|
<option name="test-suite-tag" value="apct" />
|
|
<option name="test-suite-tag" value="apct-metric-instrumentation" />
|
|
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
|
|
<option name="cleanup-apks" value="true" />
|
|
<option name="test-file-name" value="ImePerfTests.apk" />
|
|
</target_preparer>
|
|
|
|
<target_preparer class="com.android.tradefed.targetprep.DeviceSetup">
|
|
<option name="force-skip-system-props" value="true" />
|
|
<option name="run-command" value="input keyevent KEYCODE_WAKEUP" />
|
|
<option name="run-command" value="cmd window dismiss-keyguard" />
|
|
<option name="run-command" value="cmd package compile -m speed com.android.perftests.inputmethod" />
|
|
</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_detailed.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_detailed.textproto" value="/sdcard/sample.textproto" />
|
|
</target_preparer>
|
|
|
|
<!-- Needed for storing the perfetto trace files in the sdcard/test_results-->
|
|
<option name="isolated-storage" value="false" />
|
|
|
|
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
|
|
<option name="package" value="com.android.perftests.inputmethod" />
|
|
<option name="hidden-api-checks" value="false"/>
|
|
|
|
<!-- Listener related args for collecting the traces and waiting for the device to stabilize. -->
|
|
<option name="device-listeners" value="android.device.collectors.ProcLoadListener,android.device.collectors.PerfettoListener" />
|
|
|
|
<!-- Guarantee that user defined RunListeners will be running before any of the default listeners defined in this runner. -->
|
|
<option name="instrumentation-arg" key="newRunListenerMode" value="true" />
|
|
|
|
<!-- Kill background operations -->
|
|
<option name="instrumentation-arg" key="kill-bg" value="true" />
|
|
|
|
<!-- ProcLoadListener related arguments -->
|
|
<!-- Wait for device last minute threshold to reach 3 with 2 minute timeout before starting the test run -->
|
|
<option name="instrumentation-arg" key="procload-collector:per_run" value="true" />
|
|
<option name="instrumentation-arg" key="proc-loadavg-threshold" value="3" />
|
|
<option name="instrumentation-arg" key="proc-loadavg-timeout" value="120000" />
|
|
<option name="instrumentation-arg" key="proc-loadavg-interval" value="10000" />
|
|
|
|
<!-- 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" />
|
|
</test>
|
|
|
|
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
|
|
<option name="directory-keys" value="/data/local/tmp/ImePerfTests" />
|
|
<!-- Needed for pulling the collected trace config on to the host -->
|
|
<option name="pull-pattern-keys" value="perfetto_file_path" />
|
|
</metrics_collector>
|
|
</configuration>
|