| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- # SPDX-License-Identifier: GPL-2.0
- #
- # init.sh
- # Author: Michael Petlan <mpetlan@redhat.com>
- #
- # Description:
- #
- # This file should be used for initialization of basic functions
- # for checking, reporting results etc.
- #
- #
- . "$(dirname $0)/../common/settings.sh"
- . "$(dirname $0)/../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
- TASK_COMMENT="$*"
- test -n "$TASK_COMMENT" && TASK_COMMENT=":: $TASK_COMMENT"
- 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 $TASK_COMMENT"
- 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 2
- 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
- }
|