1#!/bin/sh 2# perf script tests 3# SPDX-License-Identifier: GPL-2.0 4 5set -e 6 7temp_dir=$(mktemp -d /tmp/perf-test-script.XXXXXXXXXX) 8 9perfdatafile="${temp_dir}/perf.data" 10db_test="${temp_dir}/db_test.py" 11 12err=0 13 14cleanup() 15{ 16 trap - EXIT TERM INT 17 sane=$(echo "${temp_dir}" | cut -b 1-21) 18 if [ "${sane}" = "/tmp/perf-test-script" ] ; then 19 echo "--- Cleaning up ---" 20 rm -f "${temp_dir}/"* 21 rmdir "${temp_dir}" 22 fi 23} 24 25trap_cleanup() 26{ 27 cleanup 28 exit 1 29} 30 31trap trap_cleanup EXIT TERM INT 32 33 34test_db() 35{ 36 echo "DB test" 37 38 # Check if python script is supported 39 if perf version --build-options | grep python | grep -q OFF ; then 40 echo "SKIP: python scripting is not supported" 41 err=2 42 return 43 fi 44 45 cat << "_end_of_file_" > "${db_test}" 46perf_db_export_mode = True 47perf_db_export_calls = False 48perf_db_export_callchains = True 49 50def sample_table(*args): 51 print(f'sample_table({args})') 52 53def call_path_table(*args): 54 print(f'call_path_table({args}') 55_end_of_file_ 56 case $(uname -m) 57 in s390x) 58 cmd_flags="--call-graph dwarf -e cpu-clock";; 59 *) 60 cmd_flags="-g";; 61 esac 62 63 perf record $cmd_flags -o "${perfdatafile}" true 64 perf script -i "${perfdatafile}" -s "${db_test}" 65 echo "DB test [Success]" 66} 67 68test_db 69 70cleanup 71 72exit $err 73