xref: /aosp_15_r20/external/perfetto/test/cts/perfetto_device_preparer.sh (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1#!/bin/sh
2#
3# Copyright 2023 - 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# Setups the device before running perfetto tests. Recovers the state after the
18# tests are done. The setup and the tead-down phases are distinguished via the
19# first argument: [setup|teardown].
20
21if [ "$1" != setup -a "$1" != teardown ]; then
22    echo "Usage: $0 [setup|teardown]"
23    exit 1
24fi
25
26# Only force persist.traced.enable=1 on automotive as other form factors
27# might have to have traced enabled by default per the CDD.
28if ! getprop ro.build.characteristics | grep -q automotive; then
29    exit 0
30fi
31
32# b/285215697: Set the persist.traced.enable during the test.
33PROP=persist.traced.enable
34SAVED=/data/local/tests/persist.traced.enable.saved
35if [ "$1" = setup ]; then
36    if [ -n "$(getprop ${PROP})" ]; then
37        getprop ${PROP} > ${SAVED}
38    fi
39    setprop ${PROP} "1"
40elif [ "$1" = teardown ]; then
41    if [ -e ${SAVED} ]; then
42        setprop ${PROP} $(cat ${SAVED})
43        rm ${SAVED}
44    else
45        setprop ${PROP} ""
46    fi
47fi
48