143 lines · 3.3 KB · Shell
RawDownload
# 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 skippedconsider_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 utilitycheck_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}