xref: /linux/tools/perf/tests/shell/common/settings.sh (revision 891e8abed532423d3b918b0c445dc8919bc445b5)
1# SPDX-License-Identifier: GPL-2.0
2#
3#	settings.sh
4#	Author: Michael Petlan <mpetlan@redhat.com>
5#
6#	Description:
7#
8#		This file contains global settings for the whole testsuite.
9#	Its purpose is to make it easier when it is necessary i.e. to
10#	change the usual sample command which is used in all of the tests
11#	in many files.
12#
13#		This file is intended to be sourced in the tests.
14#
15
16#### which perf to use in the testing
17export CMD_PERF=${CMD_PERF:-`which perf`}
18
19#### basic programs examinated by perf
20export CMD_BASIC_SLEEP="sleep 0.1"
21export CMD_QUICK_SLEEP="sleep 0.01"
22export CMD_LONGER_SLEEP="sleep 2"
23export CMD_DOUBLE_LONGER_SLEEP="sleep 4"
24export CMD_VERY_LONG_SLEEP="sleep 30"
25export CMD_SIMPLE="true"
26
27#### testsuite run mode
28# define constants:
29export RUNMODE_BASIC=0
30export RUNMODE_STANDARD=1
31export RUNMODE_EXPERIMENTAL=2
32# default runmode is STANDARD
33export PERFTOOL_TESTSUITE_RUNMODE=${PERFTOOL_TESTSUITE_RUNMODE:-$RUNMODE_STANDARD}
34
35#### common settings
36export TESTLOG_VERBOSITY=${TESTLOG_VERBOSITY:-2}
37export TESTLOG_FORCE_COLOR=${TESTLOG_FORCE_COLOR:-n}
38export TESTLOG_ERR_MSG_MAX_LINES=${TESTLOG_ERR_MSG_MAX_LINES:-20}
39export TESTLOG_CLEAN=${TESTLOG_CLEAN:-y}
40
41#### other environment-related settings
42export TEST_IGNORE_MISSING_PMU=${TEST_IGNORE_MISSING_PMU:-n}
43
44#### clear locale
45export LC_ALL=C
46
47#### colors
48if [ -t 1 ] || [ "$TESTLOG_FORCE_COLOR" = "yes" ]; then
49	export MPASS="\e[32m"
50	export MALLPASS="\e[1;32m"
51	export MFAIL="\e[31m"
52	export MALLFAIL="\e[1;31m"
53	export MWARN="\e[1;35m"
54	export MSKIP="\e[33m"
55	export MHIGH="\e[1;33m"
56	export MEND="\e[m"
57else
58	export MPASS=""
59	export MALLPASS=""
60	export MFAIL=""
61	export MALLFAIL=""
62	export MWARN=""
63	export MSKIP=""
64	export MHIGH=""
65	export MEND=""
66fi
67
68### general info
69DIR_PATH=`dirname "$(readlink -e "$0")"`
70
71TEST_NAME=`basename $DIR_PATH | sed 's/base/perf/'`; export TEST_NAME
72MY_ARCH=`arch`; export MY_ARCH
73
74# storing logs and temporary files variables
75if [ -n "$PERFSUITE_RUN_DIR" ]; then
76	# when $PERFSUITE_RUN_DIR is set to something, all the logs and temp files will be placed there
77	# --> the $PERFSUITE_RUN_DIR/perf_something/examples and $PERFSUITE_RUN_DIR/perf_something/logs
78	#     dirs will be used for that
79	PERFSUITE_RUN_DIR=`readlink -f $PERFSUITE_RUN_DIR`; export PERFSUITE_RUN_DIR
80	export CURRENT_TEST_DIR="$PERFSUITE_RUN_DIR/$TEST_NAME"
81	export MAKE_TARGET_DIR="$CURRENT_TEST_DIR/examples"
82	export LOGS_DIR="$CURRENT_TEST_DIR/logs"
83	export HEADER_TAR_DIR="$CURRENT_TEST_DIR/header_tar"
84	test -d "$CURRENT_TEST_DIR" || mkdir -p "$CURRENT_TEST_DIR"
85	test -d "$LOGS_DIR" || mkdir -p "$LOGS_DIR"
86else
87	# when $PERFSUITE_RUN_DIR is not set, logs will be placed here
88	export CURRENT_TEST_DIR="."
89	export LOGS_DIR="."
90	export HEADER_TAR_DIR="./header_tar"
91fi
92
93
94#### test parametrization
95if [ ! -d ./common ]; then
96	# set parameters based on runmode
97	if [ -f ../common/parametrization.$PERFTOOL_TESTSUITE_RUNMODE.sh ]; then
98		# shellcheck source=/dev/null
99		. ../common/parametrization.$PERFTOOL_TESTSUITE_RUNMODE.sh
100	fi
101	# if some parameters haven't been set until now, set them to default
102	if [ -f ../common/parametrization.sh ]; then
103		. ../common/parametrization.sh
104	fi
105fi
106