drm/rockchip: Don't change hdmi reference clock rate
[drm/drm-misc.git] / tools / perf / tests / shell / annotate.sh
blob1590a37363deb7ce05756f686172aa73279eff20
1 #!/bin/bash
2 # perf annotate basic tests
3 # SPDX-License-Identifier: GPL-2.0
5 set -e
7 shelldir=$(dirname "$0")
9 # shellcheck source=lib/perf_has_symbol.sh
10 . "${shelldir}"/lib/perf_has_symbol.sh
12 testsym="noploop"
14 skip_test_missing_symbol ${testsym}
16 err=0
17 perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
18 perfout=$(mktemp /tmp/__perf_test.perf.out.XXXXX)
19 testprog="perf test -w noploop"
20 # disassembly format: "percent : offset: instruction (operands ...)"
21 disasm_regex="[0-9]*\.[0-9]* *: *\w*: *\w*"
23 cleanup() {
24 rm -rf "${perfdata}" "${perfout}"
25 rm -rf "${perfdata}".old
27 trap - EXIT TERM INT
30 trap_cleanup() {
31 echo "Unexpected signal in ${FUNCNAME[1]}"
32 cleanup
33 exit 1
35 trap trap_cleanup EXIT TERM INT
37 test_basic() {
38 echo "Basic perf annotate test"
39 if ! perf record -o "${perfdata}" ${testprog} 2> /dev/null
40 then
41 echo "Basic annotate [Failed: perf record]"
42 err=1
43 return
46 # Generate the annotated output file
47 perf annotate --no-demangle -i "${perfdata}" --stdio 2> /dev/null | head -250 > "${perfout}"
49 # check if it has the target symbol
50 if ! grep "${testsym}" "${perfout}"
51 then
52 echo "Basic annotate [Failed: missing target symbol]"
53 err=1
54 return
57 # check if it has the disassembly lines
58 if ! grep "${disasm_regex}" "${perfout}"
59 then
60 echo "Basic annotate [Failed: missing disasm output from default disassembler]"
61 err=1
62 return
65 # check again with a target symbol name
66 if ! perf annotate --no-demangle -i "${perfdata}" "${testsym}" 2> /dev/null | \
67 head -250 | grep -m 3 "${disasm_regex}"
68 then
69 echo "Basic annotate [Failed: missing disasm output when specifying the target symbol]"
70 err=1
71 return
74 # check one more with external objdump tool (forced by --objdump option)
75 if ! perf annotate --no-demangle -i "${perfdata}" --objdump=objdump 2> /dev/null | \
76 head -250 | grep -m 3 "${disasm_regex}"
77 then
78 echo "Basic annotate [Failed: missing disasm output from non default disassembler (using --objdump)]"
79 err=1
80 return
82 echo "Basic annotate test [Success]"
85 test_basic
87 cleanup
88 exit $err