xref: /aosp_15_r20/external/perfetto/test/cts/perfetto_device_preparer.sh (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker#!/bin/sh
2*6dbdd20aSAndroid Build Coastguard Worker#
3*6dbdd20aSAndroid Build Coastguard Worker# Copyright 2023 - The Android Open Source Project
4*6dbdd20aSAndroid Build Coastguard Worker#
5*6dbdd20aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
6*6dbdd20aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
7*6dbdd20aSAndroid Build Coastguard Worker# You may obtain a copy of the License at
8*6dbdd20aSAndroid Build Coastguard Worker#
9*6dbdd20aSAndroid Build Coastguard Worker#     http://www.apache.org/licenses/LICENSE-2.0
10*6dbdd20aSAndroid Build Coastguard Worker#
11*6dbdd20aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
12*6dbdd20aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
13*6dbdd20aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*6dbdd20aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
15*6dbdd20aSAndroid Build Coastguard Worker# limitations under the License.
16*6dbdd20aSAndroid Build Coastguard Worker
17*6dbdd20aSAndroid Build Coastguard Worker# Setups the device before running perfetto tests. Recovers the state after the
18*6dbdd20aSAndroid Build Coastguard Worker# tests are done. The setup and the tead-down phases are distinguished via the
19*6dbdd20aSAndroid Build Coastguard Worker# first argument: [setup|teardown].
20*6dbdd20aSAndroid Build Coastguard Worker
21*6dbdd20aSAndroid Build Coastguard Workerif [ "$1" != setup -a "$1" != teardown ]; then
22*6dbdd20aSAndroid Build Coastguard Worker    echo "Usage: $0 [setup|teardown]"
23*6dbdd20aSAndroid Build Coastguard Worker    exit 1
24*6dbdd20aSAndroid Build Coastguard Workerfi
25*6dbdd20aSAndroid Build Coastguard Worker
26*6dbdd20aSAndroid Build Coastguard Worker# Only force persist.traced.enable=1 on automotive as other form factors
27*6dbdd20aSAndroid Build Coastguard Worker# might have to have traced enabled by default per the CDD.
28*6dbdd20aSAndroid Build Coastguard Workerif ! getprop ro.build.characteristics | grep -q automotive; then
29*6dbdd20aSAndroid Build Coastguard Worker    exit 0
30*6dbdd20aSAndroid Build Coastguard Workerfi
31*6dbdd20aSAndroid Build Coastguard Worker
32*6dbdd20aSAndroid Build Coastguard Worker# b/285215697: Set the persist.traced.enable during the test.
33*6dbdd20aSAndroid Build Coastguard WorkerPROP=persist.traced.enable
34*6dbdd20aSAndroid Build Coastguard WorkerSAVED=/data/local/tests/persist.traced.enable.saved
35*6dbdd20aSAndroid Build Coastguard Workerif [ "$1" = setup ]; then
36*6dbdd20aSAndroid Build Coastguard Worker    if [ -n "$(getprop ${PROP})" ]; then
37*6dbdd20aSAndroid Build Coastguard Worker        getprop ${PROP} > ${SAVED}
38*6dbdd20aSAndroid Build Coastguard Worker    fi
39*6dbdd20aSAndroid Build Coastguard Worker    setprop ${PROP} "1"
40*6dbdd20aSAndroid Build Coastguard Workerelif [ "$1" = teardown ]; then
41*6dbdd20aSAndroid Build Coastguard Worker    if [ -e ${SAVED} ]; then
42*6dbdd20aSAndroid Build Coastguard Worker        setprop ${PROP} $(cat ${SAVED})
43*6dbdd20aSAndroid Build Coastguard Worker        rm ${SAVED}
44*6dbdd20aSAndroid Build Coastguard Worker    else
45*6dbdd20aSAndroid Build Coastguard Worker        setprop ${PROP} ""
46*6dbdd20aSAndroid Build Coastguard Worker    fi
47*6dbdd20aSAndroid Build Coastguard Workerfi
48