Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf testsuite: Add initialization script for shell tests

Initialize reporting and logging functions that unifies formatting
of the test output used for shell tests.

Signed-off-by: Veronika Molnarova <vmolnaro@redhat.com>
Signed-off-by: Michael Petlan <mpetlan@redhat.com>
Cc: kjain@linux.ibm.com
Cc: atrajeev@linux.vnet.ibm.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240215110231.15385-4-mpetlan@redhat.com

authored by

Veronika Molnarova and committed by
Namhyung Kim
e3425864 451af6a7

+117
+117
tools/perf/tests/shell/common/init.sh
··· 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 -a $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 + }