1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.tools.testutils 18 19 import android.tools.Timestamps 20 import android.tools.traces.TraceConfig 21 import android.tools.traces.TraceConfigs 22 23 object TestTraces { 24 object LayerTrace { 25 private const val ASSET = "layers_trace.perfetto-trace" 26 val START_TIME = Timestamps.from(systemUptimeNanos = 1618663562444) 27 val SLICE_TIME = Timestamps.from(systemUptimeNanos = 1618715108595) 28 val END_TIME = Timestamps.from(systemUptimeNanos = 1620770824112) 29 val FILE 30 get() = readAssetAsFile(ASSET) 31 } 32 33 object WMTrace { 34 private const val ASSET = "wm_trace.perfetto-trace" 35 val START_TIME = Timestamps.from(elapsedNanos = 1618650751245) 36 val SLICE_TIME = Timestamps.from(elapsedNanos = 1618730362295) 37 val END_TIME = Timestamps.from(elapsedNanos = 1620756218174) 38 val FILE 39 get() = readAssetAsFile(ASSET) 40 } 41 42 object LegacyWMTrace { 43 private const val ASSET = "wm_trace.winscope" 44 val START_TIME = Timestamps.from(elapsedNanos = 1618650751245) 45 val SLICE_TIME = Timestamps.from(elapsedNanos = 1618730362295) 46 val END_TIME = Timestamps.from(elapsedNanos = 1620756218174) 47 val FILE 48 get() = readAssetAsFile(ASSET) 49 } 50 51 object EventLog { 52 private const val ASSET = "eventlog.winscope" 53 // from CUJ event 54 val START_TIME = Timestamps.from(unixNanos = 100) 55 val SLICE_TIME = Timestamps.from(unixNanos = 1670594384516466159) 56 val END_TIME = Timestamps.from(unixNanos = 1670594389958451901) 57 val FILE 58 get() = readAssetAsFile(ASSET) 59 } 60 61 object TransactionTrace { 62 private const val ASSET = "transactions_trace.perfetto-trace" 63 val START_TIME = 64 Timestamps.from(systemUptimeNanos = 1556111744859, elapsedNanos = 1556111744859) 65 val VALID_SLICE_TIME = 66 Timestamps.from(systemUptimeNanos = 1556147625539, elapsedNanos = 1556147625539) 67 val INVALID_SLICE_TIME = Timestamps.from(systemUptimeNanos = 1622127714039 + 1) 68 val END_TIME = 69 Timestamps.from(systemUptimeNanos = 1622127714039, elapsedNanos = 1622127714039) 70 val FILE 71 get() = readAssetAsFile(ASSET) 72 } 73 74 object LegacyTransitionTrace { 75 private const val WM_ASSET = "wm_transition_trace.winscope" 76 private const val SHELL_ASSET = "shell_transition_trace.winscope" 77 78 val START_TIME = 79 Timestamps.from(elapsedNanos = 760760231809, systemUptimeNanos = 0, unixNanos = 0) 80 val VALID_SLICE_TIME = 81 Timestamps.from( 82 elapsedNanos = 2770105426934 - 1000, 83 systemUptimeNanos = 0, 84 unixNanos = 0, 85 ) 86 val INVALID_SLICE_TIME = 87 Timestamps.from(elapsedNanos = 2770105426934 + 1, systemUptimeNanos = 0, unixNanos = 0) 88 val END_TIME = 89 Timestamps.from(elapsedNanos = 2770105426934, systemUptimeNanos = 0, unixNanos = 0) 90 91 val WM_FILE 92 get() = readAssetAsFile(WM_ASSET) 93 94 val SHELL_FILE 95 get() = readAssetAsFile(SHELL_ASSET) 96 } 97 98 object TransitionTrace { 99 private const val ASSET = "transitions.perfetto-trace" 100 101 val START_TIME = 102 Timestamps.from(elapsedNanos = 479583450794, systemUptimeNanos = 0, unixNanos = 0) 103 val VALID_SLICE_TIME = 104 Timestamps.from( 105 elapsedNanos = 479583450794 + 5000, 106 systemUptimeNanos = 0, 107 unixNanos = 0, 108 ) 109 val INVALID_SLICE_TIME = 110 Timestamps.from(elapsedNanos = 487330863192 + 1, systemUptimeNanos = 0, unixNanos = 0) 111 val END_TIME = 112 Timestamps.from(elapsedNanos = 487330863192, systemUptimeNanos = 0, unixNanos = 0) 113 114 val FILE 115 get() = readAssetAsFile(ASSET) 116 } 117 118 object ProtoLogTrace { 119 private const val ASSET = "protolog.perfetto-trace" 120 121 val START_TIME = 122 Timestamps.from(elapsedNanos = 3663230963946, systemUptimeNanos = 0, unixNanos = 0) 123 val VALID_SLICE_TIME = 124 Timestamps.from( 125 elapsedNanos = 3663230963946 + 5000, 126 systemUptimeNanos = 0, 127 unixNanos = 0, 128 ) 129 val INVALID_SLICE_TIME = 130 Timestamps.from(elapsedNanos = 3672045108074 + 1, systemUptimeNanos = 0, unixNanos = 0) 131 val END_TIME = 132 Timestamps.from(elapsedNanos = 3672045108074, systemUptimeNanos = 0, unixNanos = 0) 133 134 val FILE 135 get() = readAssetAsFile(ASSET) 136 } 137 138 val TIME_5 = Timestamps.from(5, 5, 5) 139 val TIME_10 = Timestamps.from(10, 10, 10) 140 141 val TEST_TRACE_CONFIG = 142 TraceConfigs( 143 wmTrace = 144 TraceConfig(required = false, allowNoChange = false, usingExistingTraces = false), 145 layersTrace = 146 TraceConfig(required = false, allowNoChange = false, usingExistingTraces = false), 147 transitionsTrace = 148 TraceConfig(required = false, allowNoChange = false, usingExistingTraces = false), 149 transactionsTrace = 150 TraceConfig(required = false, allowNoChange = false, usingExistingTraces = false), 151 ) 152 } 153