#!/bin/sh# perf script tests# SPDX-License-Identifier: GPL-2.0 set -e temp_dir=$(mktemp -d /tmp/perf-test-script.XXXXXXXXXX) perfdatafile="${temp_dir}/perf.data"db_test="${temp_dir}/db_test.py" err=0 cleanup(){ trap - EXIT TERM INT sane=$(echo "${temp_dir}" | cut -b 1-21) if [ "${sane}" = "/tmp/perf-test-script" ] ; then echo "--- Cleaning up ---" rm -f "${temp_dir}/"* rmdir "${temp_dir}" fi} trap_cleanup(){ cleanup exit 1} trap trap_cleanup EXIT TERM INT test_db(){ echo "DB test" # Check if python script is supported if perf version --build-options | grep python | grep -q OFF ; then echo "SKIP: python scripting is not supported" err=2 return fi cat << "_end_of_file_" > "${db_test}"perf_db_export_mode = Trueperf_db_export_calls = Falseperf_db_export_callchains = True def sample_table(*args): print(f'sample_table({args})') def call_path_table(*args): print(f'call_path_table({args}')_end_of_file_ case $(uname -m) in s390x) cmd_flags="--call-graph dwarf -e cpu-clock";; *) cmd_flags="-g";; esac perf record $cmd_flags -o "${perfdatafile}" true perf script -i "${perfdatafile}" -s "${db_test}" echo "DB test [Success]"} test_db cleanup exit $err
#!/bin/sh
# perf script tests
# SPDX-License-Identifier: GPL-2.0
set -e
temp_dir=$(mktemp -d /tmp/perf-test-script.XXXXXXXXXX)
perfdatafile="${temp_dir}/perf.data"
db_test="${temp_dir}/db_test.py"
err=0
cleanup()
{
trap - EXIT TERM INT
sane=$(echo "${temp_dir}" | cut -b 1-21)
if [ "${sane}" = "/tmp/perf-test-script" ] ; then
echo "--- Cleaning up ---"
rm -f "${temp_dir}/"*
rmdir "${temp_dir}"
fi
}
trap_cleanup()
{
cleanup
exit 1
}
trap trap_cleanup EXIT TERM INT
test_db()
{
echo "DB test"
# Check if python script is supported
if perf version --build-options | grep python | grep -q OFF ; then
echo "SKIP: python scripting is not supported"
err=2
return
fi
cat << "_end_of_file_" > "${db_test}"
perf_db_export_mode = True
perf_db_export_calls = False
perf_db_export_callchains = True
def sample_table(*args):
print(f'sample_table({args})')
def call_path_table(*args):
print(f'call_path_table({args}')
_end_of_file_
case $(uname -m)
in s390x)
cmd_flags="--call-graph dwarf -e cpu-clock";;
*)
cmd_flags="-g";;
esac
perf record $cmd_flags -o "${perfdatafile}" true
perf script -i "${perfdatafile}" -s "${db_test}"
echo "DB test [Success]"
}
test_db
cleanup
exit $err