]> Git Repo - linux.git/blob - tools/perf/tests/shell/common/init.sh
Linux 6.14-rc3
[linux.git] / tools / perf / tests / shell / common / init.sh
1 # SPDX-License-Identifier: GPL-2.0
2 #
3 #       init.sh
4 #       Author: Michael Petlan <[email protected]>
5 #
6 #       Description:
7 #
8 #               This file should be used for initialization of basic functions
9 #       for checking, reporting results etc.
10 #
11 #
12
13
14 . ../common/settings.sh
15 . ../common/patterns.sh
16
17 THIS_TEST_NAME=`basename $0 .sh`
18
19 _echo()
20 {
21         test "$TESTLOG_VERBOSITY" -ne 0 && echo -e "$@"
22 }
23
24 print_results()
25 {
26         PERF_RETVAL="$1"; shift
27         CHECK_RETVAL="$1"; shift
28         FAILURE_REASON=""
29         TASK_COMMENT="$*"
30         if [ $PERF_RETVAL -eq 0 ] && [ $CHECK_RETVAL -eq 0 ]; then
31                 _echo "$MPASS-- [ PASS ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $TASK_COMMENT"
32                 return 0
33         else
34                 if [ $PERF_RETVAL -ne 0 ]; then
35                         FAILURE_REASON="command exitcode"
36                 fi
37                 if [ $CHECK_RETVAL -ne 0 ]; then
38                         test -n "$FAILURE_REASON" && FAILURE_REASON="$FAILURE_REASON + "
39                         FAILURE_REASON="$FAILURE_REASON""output regexp parsing"
40                 fi
41                 _echo "$MFAIL-- [ FAIL ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $TASK_COMMENT ($FAILURE_REASON)"
42                 return 1
43         fi
44 }
45
46 print_overall_results()
47 {
48         RETVAL="$1"; shift
49         TASK_COMMENT="$*"
50         test -n "$TASK_COMMENT" && TASK_COMMENT=":: $TASK_COMMENT"
51
52         if [ $RETVAL -eq 0 ]; then
53                 _echo "$MALLPASS## [ PASS ] ##$MEND $TEST_NAME :: $THIS_TEST_NAME SUMMARY"
54         else
55                 _echo "$MALLFAIL## [ FAIL ] ##$MEND $TEST_NAME :: $THIS_TEST_NAME SUMMARY :: $RETVAL failures found $TASK_COMMENT"
56         fi
57         return $RETVAL
58 }
59
60 print_testcase_skipped()
61 {
62         TASK_COMMENT="$*"
63         _echo "$MSKIP-- [ SKIP ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $TASK_COMMENT :: testcase skipped"
64         return 0
65 }
66
67 print_overall_skipped()
68 {
69         _echo "$MSKIP## [ SKIP ] ##$MEND $TEST_NAME :: $THIS_TEST_NAME :: testcase skipped"
70         return 0
71 }
72
73 print_warning()
74 {
75         WARN_COMMENT="$*"
76         _echo "$MWARN-- [ WARN ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $WARN_COMMENT"
77         return 0
78 }
79
80 # this function should skip a testcase if the testsuite is not run in
81 # a runmode that fits the testcase --> if the suite runs in BASIC mode
82 # all STANDARD and EXPERIMENTAL testcases will be skipped; if the suite
83 # runs in STANDARD mode, all EXPERIMENTAL testcases will be skipped and
84 # if the suite runs in EXPERIMENTAL mode, nothing is skipped
85 consider_skipping()
86 {
87         TESTCASE_RUNMODE="$1"
88         # the runmode of a testcase needs to be at least the current suite's runmode
89         if [ $PERFTOOL_TESTSUITE_RUNMODE -lt $TESTCASE_RUNMODE ]; then
90                 print_overall_skipped
91                 exit 2
92         fi
93 }
94
95 detect_baremetal()
96 {
97         # return values:
98         # 0 = bare metal
99         # 1 = virtualization detected
100         # 2 = unknown state
101         VIRT=`systemd-detect-virt 2>/dev/null`
102         test $? -eq 127 && return 2
103         test "$VIRT" = "none"
104 }
105
106 detect_intel()
107 {
108         # return values:
109         # 0 = is Intel
110         # 1 = is not Intel or unknown
111         grep "vendor_id" < /proc/cpuinfo | grep -q "GenuineIntel"
112 }
113
114 detect_amd()
115 {
116         # return values:
117         # 0 = is AMD
118         # 1 = is not AMD or unknown
119         grep "vendor_id" < /proc/cpuinfo | grep -q "AMD"
120 }
121
122 # base probe utility
123 check_kprobes_available()
124 {
125         test -e /sys/kernel/debug/tracing/kprobe_events
126 }
127
128 check_uprobes_available()
129 {
130         test -e /sys/kernel/debug/tracing/uprobe_events
131 }
132
133 clear_all_probes()
134 {
135         echo 0 > /sys/kernel/debug/tracing/events/enable
136         check_kprobes_available && echo > /sys/kernel/debug/tracing/kprobe_events
137         check_uprobes_available && echo > /sys/kernel/debug/tracing/uprobe_events
138 }
139
140 check_sdt_support()
141 {
142         $CMD_PERF list sdt | grep sdt > /dev/null 2> /dev/null
143 }
This page took 0.045534 seconds and 4 git commands to generate.