1 # SPDX-License-Identifier: GPL-2.0 2 # 3 # init.sh 4 # Author: Michael Petlan <mpetlan@redhat.com> 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 if [ $RETVAL -eq 0 ]; then 50 _echo "$MALLPASS## [ PASS ] ##$MEND $TEST_NAME :: $THIS_TEST_NAME SUMMARY" 51 else 52 _echo "$MALLFAIL## [ FAIL ] ##$MEND $TEST_NAME :: $THIS_TEST_NAME SUMMARY :: $RETVAL failures found" 53 fi 54 return $RETVAL 55 } 56 57 print_testcase_skipped() 58 { 59 TASK_COMMENT="$*" 60 _echo "$MSKIP-- [ SKIP ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $TASK_COMMENT :: testcase skipped" 61 return 0 62 } 63 64 print_overall_skipped() 65 { 66 _echo "$MSKIP## [ SKIP ] ##$MEND $TEST_NAME :: $THIS_TEST_NAME :: testcase skipped" 67 return 0 68 } 69 70 print_warning() 71 { 72 WARN_COMMENT="$*" 73 _echo "$MWARN-- [ WARN ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $WARN_COMMENT" 74 return 0 75 } 76 77 # this function should skip a testcase if the testsuite is not run in 78 # a runmode that fits the testcase --> if the suite runs in BASIC mode 79 # all STANDARD and EXPERIMENTAL testcases will be skipped; if the suite 80 # runs in STANDARD mode, all EXPERIMENTAL testcases will be skipped and 81 # if the suite runs in EXPERIMENTAL mode, nothing is skipped 82 consider_skipping() 83 { 84 TESTCASE_RUNMODE="$1" 85 # the runmode of a testcase needs to be at least the current suite's runmode 86 if [ $PERFTOOL_TESTSUITE_RUNMODE -lt $TESTCASE_RUNMODE ]; then 87 print_overall_skipped 88 exit 0 89 fi 90 } 91 92 detect_baremetal() 93 { 94 # return values: 95 # 0 = bare metal 96 # 1 = virtualization detected 97 # 2 = unknown state 98 VIRT=`systemd-detect-virt 2>/dev/null` 99 test $? -eq 127 && return 2 100 test "$VIRT" = "none" 101 } 102 103 detect_intel() 104 { 105 # return values: 106 # 0 = is Intel 107 # 1 = is not Intel or unknown 108 grep "vendor_id" < /proc/cpuinfo | grep -q "GenuineIntel" 109 } 110 111 detect_amd() 112 { 113 # return values: 114 # 0 = is AMD 115 # 1 = is not AMD or unknown 116 grep "vendor_id" < /proc/cpuinfo | grep -q "AMD" 117 } 118 119 # base probe utility 120 check_kprobes_available() 121 { 122 test -e /sys/kernel/debug/tracing/kprobe_events 123 } 124 125 check_uprobes_available() 126 { 127 test -e /sys/kernel/debug/tracing/uprobe_events 128 } 129 130 clear_all_probes() 131 { 132 echo 0 > /sys/kernel/debug/tracing/events/enable 133 check_kprobes_available && echo > /sys/kernel/debug/tracing/kprobe_events 134 check_uprobes_available && echo > /sys/kernel/debug/tracing/uprobe_events 135 } 136 137 check_sdt_support() 138 { 139 $CMD_PERF list sdt | grep sdt > /dev/null 2> /dev/null 140 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.