# SPDX-License-Identifier: GPL-2.0 # # init.sh # Author: Michael Petlan # # Description: # # This file should be used for initialization of basic functions # for checking, reporting results etc. # # . ../common/settings.sh . ../common/patterns.sh THIS_TEST_NAME=`basename $0 .sh` _echo() { test "$TESTLOG_VERBOSITY" -ne 0 && echo -e "$@" } print_results() { PERF_RETVAL="$1"; shift CHECK_RETVAL="$1"; shift FAILURE_REASON="" TASK_COMMENT="$*" if [ $PERF_RETVAL -eq 0 ] && [ $CHECK_RETVAL -eq 0 ]; then _echo "$MPASS-- [ PASS ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $TASK_COMMENT" return 0 else if [ $PERF_RETVAL -ne 0 ]; then FAILURE_REASON="command exitcode" fi if [ $CHECK_RETVAL -ne 0 ]; then test -n "$FAILURE_REASON" && FAILURE_REASON="$FAILURE_REASON + " FAILURE_REASON="$FAILURE_REASON""output regexp parsing" fi _echo "$MFAIL-- [ FAIL ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $TASK_COMMENT ($FAILURE_REASON)" return 1 fi } print_overall_results() { RETVAL="$1"; shift if [ $RETVAL -eq 0 ]; then _echo "$MALLPASS## [ PASS ] ##$MEND $TEST_NAME :: $THIS_TEST_NAME SUMMARY" else _echo "$MALLFAIL## [ FAIL ] ##$MEND $TEST_NAME :: $THIS_TEST_NAME SUMMARY :: $RETVAL failures found" fi return $RETVAL } print_testcase_skipped() { TASK_COMMENT="$*" _echo "$MSKIP-- [ SKIP ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $TASK_COMMENT :: testcase skipped" return 0 } print_overall_skipped() { _echo "$MSKIP## [ SKIP ] ##$MEND $TEST_NAME :: $THIS_TEST_NAME :: testcase skipped" return 0 } print_warning() { WARN_COMMENT="$*" _echo "$MWARN-- [ WARN ] --$MEND $TEST_NAME :: $THIS_TEST_NAME :: $WARN_COMMENT" return 0 } # this function should skip a testcase if the testsuite is not run in # a runmode that fits the testcase --> if the suite runs in BASIC mode # all STANDARD and EXPERIMENTAL testcases will be skipped; if the suite # runs in STANDARD mode, all EXPERIMENTAL testcases will be skipped and # if the suite runs in EXPERIMENTAL mode, nothing is skipped consider_skipping() { TESTCASE_RUNMODE="$1" # the runmode of a testcase needs to be at least the current suite's runmode if [ $PERFTOOL_TESTSUITE_RUNMODE -lt $TESTCASE_RUNMODE ]; then print_overall_skipped exit 0 fi } detect_baremetal() { # return values: # 0 = bare metal # 1 = virtualization detected # 2 = unknown state VIRT=`systemd-detect-virt 2>/dev/null` test $? -eq 127 && return 2 test "$VIRT" = "none" } detect_intel() { # return values: # 0 = is Intel # 1 = is not Intel or unknown grep "vendor_id" < /proc/cpuinfo | grep -q "GenuineIntel" } detect_amd() { # return values: # 0 = is AMD # 1 = is not AMD or unknown grep "vendor_id" < /proc/cpuinfo | grep -q "AMD" } # base probe utility check_kprobes_available() { test -e /sys/kernel/debug/tracing/kprobe_events } check_uprobes_available() { test -e /sys/kernel/debug/tracing/uprobe_events } clear_all_probes() { echo 0 > /sys/kernel/debug/tracing/events/enable check_kprobes_available && echo > /sys/kernel/debug/tracing/kprobe_events check_uprobes_available && echo > /sys/kernel/debug/tracing/uprobe_events } check_sdt_support() { $CMD_PERF list sdt | grep sdt > /dev/null 2> /dev/null }