Merge "Perfetto a trace for the entire flicker test run" into udc-qpr-dev am: 42ba45e12b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23429136 Change-Id: I0ee496944fd4eee6381147e75453474686f10be4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -70,6 +70,7 @@ java_defaults {
|
|||||||
],
|
],
|
||||||
data: [
|
data: [
|
||||||
":FlickerTestApp",
|
":FlickerTestApp",
|
||||||
|
"trace_config/*",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,9 @@
|
|||||||
-->
|
-->
|
||||||
<configuration description="Runs WindowManager Shell Flicker Tests {MODULE}">
|
<configuration description="Runs WindowManager Shell Flicker Tests {MODULE}">
|
||||||
<option name="test-tag" value="FlickerTests" />
|
<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">
|
<target_preparer class="com.android.tradefed.targetprep.DeviceSetup">
|
||||||
<!-- keeps the screen on during tests -->
|
<!-- keeps the screen on during tests -->
|
||||||
<option name="screen-always-on" value="on" />
|
<option name="screen-always-on" value="on" />
|
||||||
@@ -41,22 +44,53 @@
|
|||||||
<option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1" />
|
<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 show_touches 1" />
|
||||||
<option name="run-command" value="settings put system pointer_location 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 secure show_ime_with_hard_keyboard" />
|
||||||
<option name="teardown-command" value="settings delete system show_touches" />
|
<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="settings delete system pointer_location" />
|
||||||
<option name="teardown-command" value="cmd overlay enable com.android.internal.systemui.navbar.gestural" />
|
<option name="teardown-command"
|
||||||
|
value="cmd overlay enable com.android.internal.systemui.navbar.gestural" />
|
||||||
</target_preparer>
|
</target_preparer>
|
||||||
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
|
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
|
||||||
<option name="cleanup-apks" value="true"/>
|
<option name="cleanup-apks" value="true"/>
|
||||||
<option name="test-file-name" value="{MODULE}.apk"/>
|
<option name="test-file-name" value="{MODULE}.apk"/>
|
||||||
<option name="test-file-name" value="FlickerTestApp.apk" />
|
<option name="test-file-name" value="FlickerTestApp.apk" />
|
||||||
</target_preparer>
|
</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">
|
<test class="com.android.tradefed.testtype.AndroidJUnitTest">
|
||||||
<option name="package" value="{PACKAGE}"/>
|
<option name="package" value="{PACKAGE}"/>
|
||||||
<option name="shell-timeout" value="6600s" />
|
<option name="shell-timeout" value="6600s" />
|
||||||
<option name="test-timeout" value="6000s" />
|
<option name="test-timeout" value="6000s" />
|
||||||
<option name="hidden-api-checks" value="false" />
|
<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>
|
</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" />
|
||||||
|
</metrics_collector>
|
||||||
|
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
|
||||||
|
<option name="pull-pattern-keys" value="(\w)+\.winscope" />
|
||||||
|
<option name="pull-pattern-keys" value="(\w)+\.mp4" />
|
||||||
|
<option name="collect-on-run-ended-only" value="false" />
|
||||||
|
<option name="clean-up" value="true" />
|
||||||
|
</metrics_collector>
|
||||||
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
|
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
|
||||||
<option name="directory-keys" value="/sdcard/flicker" />
|
<option name="directory-keys" value="/sdcard/flicker" />
|
||||||
<option name="collect-on-run-ended-only" value="true" />
|
<option name="collect-on-run-ended-only" value="true" />
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
# 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.testapp"
|
||||||
|
atrace_apps: "com.android.systemui"
|
||||||
|
atrace_apps: "com.android.wm.shell.flicker"
|
||||||
|
atrace_apps: "com.android.wm.shell.flicker.other"
|
||||||
|
atrace_apps: "com.android.wm.shell.flicker.bubbles"
|
||||||
|
atrace_apps: "com.android.wm.shell.flicker.pip"
|
||||||
|
atrace_apps: "com.android.wm.shell.flicker.splitscreen"
|
||||||
|
atrace_apps: "com.google.android.apps.nexuslauncher"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -83,6 +83,7 @@ java_defaults {
|
|||||||
],
|
],
|
||||||
data: [
|
data: [
|
||||||
":FlickerTestApp",
|
":FlickerTestApp",
|
||||||
|
"trace_config/*",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
-->
|
-->
|
||||||
<configuration description="Runs WindowManager {MODULE}">
|
<configuration description="Runs WindowManager {MODULE}">
|
||||||
<option name="test-tag" value="FlickerTests" />
|
<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">
|
<target_preparer class="com.android.tradefed.targetprep.DeviceSetup">
|
||||||
<!-- keeps the screen on during tests -->
|
<!-- keeps the screen on during tests -->
|
||||||
<option name="screen-always-on" value="on" />
|
<option name="screen-always-on" value="on" />
|
||||||
@@ -29,25 +32,51 @@
|
|||||||
<option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1" />
|
<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 show_touches 1" />
|
||||||
<option name="run-command" value="settings put system pointer_location 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 secure show_ime_with_hard_keyboard" />
|
||||||
<option name="teardown-command" value="settings delete system show_touches" />
|
<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="settings delete system pointer_location" />
|
||||||
<option name="teardown-command" value="cmd overlay enable com.android.internal.systemui.navbar.gestural" />
|
<option name="teardown-command"
|
||||||
|
value="cmd overlay enable com.android.internal.systemui.navbar.gestural" />
|
||||||
</target_preparer>
|
</target_preparer>
|
||||||
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
|
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
|
||||||
<option name="cleanup-apks" value="true"/>
|
<option name="cleanup-apks" value="true"/>
|
||||||
<option name="test-file-name" value="{MODULE}.apk"/>
|
<option name="test-file-name" value="{MODULE}.apk"/>
|
||||||
<option name="test-file-name" value="FlickerTestApp.apk" />
|
<option name="test-file-name" value="FlickerTestApp.apk" />
|
||||||
</target_preparer>
|
</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">
|
<test class="com.android.tradefed.testtype.AndroidJUnitTest">
|
||||||
<option name="package" value="{PACKAGE}"/>
|
<option name="package" value="{PACKAGE}"/>
|
||||||
<option name="shell-timeout" value="6600s" />
|
<option name="shell-timeout" value="6600s" />
|
||||||
<option name="test-timeout" value="6600s" />
|
<option name="test-timeout" value="6600s" />
|
||||||
<option name="hidden-api-checks" value="false" />
|
<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>
|
</test>
|
||||||
|
<!-- Needed for pulling the collected trace config on to the host -->
|
||||||
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
|
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
|
||||||
<option name="directory-keys" value="/sdcard/flicker" />
|
<option name="pull-pattern-keys" value="perfetto_file_path" />
|
||||||
<option name="collect-on-run-ended-only" value="true" />
|
</metrics_collector>
|
||||||
|
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
|
||||||
|
<option name="pull-pattern-keys" value="(\w)+\.winscope" />
|
||||||
|
<option name="pull-pattern-keys" value="(\w)+\.mp4" />
|
||||||
|
<option name="collect-on-run-ended-only" value="false" />
|
||||||
<option name="clean-up" value="true" />
|
<option name="clean-up" value="true" />
|
||||||
</metrics_collector>
|
</metrics_collector>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@@ -48,9 +48,4 @@
|
|||||||
<uses-library android:name="android.test.runner"/>
|
<uses-library android:name="android.test.runner"/>
|
||||||
<uses-library android:name="androidx.window.extensions" android:required="false"/>
|
<uses-library android:name="androidx.window.extensions" android:required="false"/>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
<!--<instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
|
|
||||||
android:targetPackage="{{package}}"
|
|
||||||
android:label="WindowManager Flicker Tests {MODULE}">
|
|
||||||
</instrumentation>-->
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
77
tests/FlickerTests/trace_config/trace_config.textproto
Normal file
77
tests/FlickerTests/trace_config/trace_config.textproto
Normal file
@@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user