1<?xml version="1.0" encoding="utf-8"?> 2<!-- 3 ~ Copyright (C) 2020 The Android Open Source Project 4 ~ 5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 6 ~ you may not use this file except in compliance with the License. 7 ~ You may obtain a copy of the License at 8 ~ 9 ~ http://www.apache.org/licenses/LICENSE-2.0 10 ~ 11 ~ Unless required by applicable law or agreed to in writing, software 12 ~ distributed under the License is distributed on an "AS IS" BASIS, 13 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 ~ See the License for the specific language governing permissions and 15 ~ limitations under the License. 16 --> 17<configuration description="Runs PackageManagerPerfTests metric instrumentation."> 18 <option name="test-suite-tag" value="apct"/> 19 <option name="test-suite-tag" value="apct-metric-instrumentation"/> 20 <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 21 <option name="cleanup-apks" value="true"/> 22 <option name="test-file-name" value="PackageManagerPerfTests.apk"/> 23 </target_preparer> 24 <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 25 <option name="cleanup-apks" value="true"/> 26 <option name="force-queryable" value="false"/> 27 <option name="test-file-name" value="QueriesAll0.apk"/> 28 <option name="test-file-name" value="QueriesAll1.apk"/> 29 <option name="test-file-name" value="QueriesAll2.apk"/> 30 <option name="test-file-name" value="QueriesAll3.apk"/> 31 <option name="test-file-name" value="QueriesAll4.apk"/> 32 <option name="test-file-name" value="QueriesAll5.apk"/> 33 <option name="test-file-name" value="QueriesAll6.apk"/> 34 <option name="test-file-name" value="QueriesAll7.apk"/> 35 <option name="test-file-name" value="QueriesAll8.apk"/> 36 <option name="test-file-name" value="QueriesAll9.apk"/> 37 <option name="test-file-name" value="QueriesAll10.apk"/> 38 <option name="test-file-name" value="QueriesAll11.apk"/> 39 <option name="test-file-name" value="QueriesAll12.apk"/> 40 <option name="test-file-name" value="QueriesAll13.apk"/> 41 <option name="test-file-name" value="QueriesAll14.apk"/> 42 <option name="test-file-name" value="QueriesAll15.apk"/> 43 <option name="test-file-name" value="QueriesAll16.apk"/> 44 <option name="test-file-name" value="QueriesAll17.apk"/> 45 <option name="test-file-name" value="QueriesAll18.apk"/> 46 <option name="test-file-name" value="QueriesAll19.apk"/> 47 <option name="test-file-name" value="QueriesAll20.apk"/> 48 <option name="test-file-name" value="QueriesAll21.apk"/> 49 <option name="test-file-name" value="QueriesAll22.apk"/> 50 <option name="test-file-name" value="QueriesAll23.apk"/> 51 <option name="test-file-name" value="QueriesAll24.apk"/> 52 <option name="test-file-name" value="QueriesAll25.apk"/> 53 <option name="test-file-name" value="QueriesAll26.apk"/> 54 <option name="test-file-name" value="QueriesAll27.apk"/> 55 <option name="test-file-name" value="QueriesAll28.apk"/> 56 <option name="test-file-name" value="QueriesAll29.apk"/> 57 <option name="test-file-name" value="QueriesAll30.apk"/> 58 <option name="test-file-name" value="QueriesAll31.apk"/> 59 <option name="test-file-name" value="QueriesAll32.apk"/> 60 <option name="test-file-name" value="QueriesAll33.apk"/> 61 <option name="test-file-name" value="QueriesAll34.apk"/> 62 <option name="test-file-name" value="QueriesAll35.apk"/> 63 <option name="test-file-name" value="QueriesAll36.apk"/> 64 <option name="test-file-name" value="QueriesAll37.apk"/> 65 <option name="test-file-name" value="QueriesAll38.apk"/> 66 <option name="test-file-name" value="QueriesAll39.apk"/> 67 <option name="test-file-name" value="QueriesAll40.apk"/> 68 <option name="test-file-name" value="QueriesAll41.apk"/> 69 <option name="test-file-name" value="QueriesAll42.apk"/> 70 <option name="test-file-name" value="QueriesAll43.apk"/> 71 <option name="test-file-name" value="QueriesAll44.apk"/> 72 <option name="test-file-name" value="QueriesAll45.apk"/> 73 <option name="test-file-name" value="QueriesAll46.apk"/> 74 <option name="test-file-name" value="QueriesAll47.apk"/> 75 <option name="test-file-name" value="QueriesAll48.apk"/> 76 <option name="test-file-name" value="QueriesAll49.apk"/> 77 </target_preparer> 78 79 <test class="com.android.tradefed.testtype.AndroidJUnitTest"> 80 <option name="package" value="com.android.perftests.packagemanager"/> 81 <option name="hidden-api-checks" value="false"/> 82 </test> 83 84 <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> 85 <option name="directory-keys" value="/data/local/PackageManagerPerfTests"/> 86 <option name="collect-on-run-ended-only" value="true"/> 87 </metrics_collector> 88 89 <!-- Needed for pushing the trace config file --> 90 <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/> 91 <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> 92 <option name="push-file" key="trace_config_detailed.textproto" 93 value="/data/misc/perfetto-traces/trace_config.textproto"/> 94 <!--Install the content provider automatically when we push some file in sdcard folder.--> 95 <!--Needed to avoid the installation during the test suite.--> 96 <option name="push-file" key="trace_config_detailed.textproto" 97 value="/sdcard/sample.textproto"/> 98 </target_preparer> 99 100 <!-- Needed for pulling the collected trace config on to the host --> 101 <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> 102 <option name="pull-pattern-keys" value="perfetto_file_path"/> 103 </metrics_collector> 104 105 <!-- Needed for storing the perfetto trace files in the sdcard/test_results --> 106 <option name="isolated-storage" value="false"/> 107 108 <test class="com.android.tradefed.testtype.AndroidJUnitTest"> 109 <option name="package" value="com.android.perftests.packagemanager"/> 110 <option name="hidden-api-checks" value="false"/> 111 112 <!-- Listener related args for collecting the traces and waiting for the device to 113 stabilize. --> 114 <option name="device-listeners" 115 value="android.device.collectors.ProcLoadListener,android.device.collectors.PerfettoListener"/> 116 <!-- Guarantee that user defined RunListeners will be running before any of the default 117 listeners defined in this runner. --> 118 <option name="instrumentation-arg" key="newRunListenerMode" value="true"/> 119 120 <!-- ProcLoadListener related arguments --> 121 <!-- Wait for device last minute threshold to reach 3 with 2 minute timeout before starting 122 the test run --> 123 <option name="instrumentation-arg" key="procload-collector:per_run" value="true"/> 124 <option name="instrumentation-arg" key="proc-loadavg-threshold" value="3"/> 125 <option name="instrumentation-arg" key="proc-loadavg-timeout" value="120000"/> 126 <option name="instrumentation-arg" key="proc-loadavg-interval" value="10000"/> 127 128 <!-- PerfettoListener related arguments --> 129 <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/> 130 <option name="instrumentation-arg" key="perfetto_config_file" 131 value="trace_config.textproto"/> 132 133 <!-- 134 PackageInstallerBenchmark will break for 5 minutes time out so it changes to 10 minutes 135 --> 136 <option name="test-timeout" value="600000" /> 137 </test> 138 139 140</configuration> 141