Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
@@ -0,0 +1,39 @@
#!/usr/bin/perl
# SPDX-License-Identifier: GPL-2.0
@regexps = @ARGV;
$max_printed_lines = 20;
$max_printed_lines = $ENV{TESTLOG_ERR_MSG_MAX_LINES} if (defined $ENV{TESTLOG_ERR_MSG_MAX_LINES});
$quiet = 1;
$quiet = 0 if (defined $ENV{TESTLOG_VERBOSITY} && $ENV{TESTLOG_VERBOSITY} ge 2);
$passed = 1;
$lines_printed = 0;
while (<STDIN>)
{
s/\n//;
$line_matched = 0;
for $r (@regexps)
{
if (/$r/)
{
$line_matched = 1;
last;
}
}
unless ($line_matched)
{
if ($lines_printed++ < $max_printed_lines)
{
print "Line did not match any pattern: \"$_\"\n" unless $quiet;
}
$passed = 0;
}
}
exit ($passed == 0);
@@ -0,0 +1,34 @@
#!/usr/bin/perl
# SPDX-License-Identifier: GPL-2.0
@regexps = @ARGV;
$quiet = 1;
$quiet = 0 if (defined $ENV{TESTLOG_VERBOSITY} && $ENV{TESTLOG_VERBOSITY} ge 2);
%found = ();
$passed = 1;
while (<STDIN>)
{
s/\n//;
for $r (@regexps)
{
if (/$r/)
{
$found{$r} = 1; # FIXME: maybe add counters -- how many times was the regexp matched
}
}
}
for $r (@regexps)
{
unless (exists $found{$r})
{
print "Regexp not found: \"$r\"\n" unless $quiet;
$passed = 0;
}
}
exit ($passed == 0);
@@ -0,0 +1,51 @@
#!/usr/bin/perl
# SPDX-License-Identifier: GPL-2.0
$whitelist_file = shift;
if (defined $whitelist_file)
{
open (INFILE, $whitelist_file) or die "Checker error: Unable to open the whitelist file: $whitelist_file\n";
@regexps = <INFILE>;
close INFILE or die "Checker error: Unable to close the whitelist file: $whitelist_file\n";
}
else
{
@regexps = ();
}
$max_printed_lines = 20;
$max_printed_lines = $ENV{TESTLOG_ERR_MSG_MAX_LINES} if (defined $ENV{TESTLOG_ERR_MSG_MAX_LINES});
$quiet = 1;
$quiet = 0 if (defined $ENV{TESTLOG_VERBOSITY} && $ENV{TESTLOG_VERBOSITY} ge 2);
$passed = 1;
$lines_printed = 0;
while (<STDIN>)
{
s/\n//;
$line_matched = 0;
for $r (@regexps)
{
chomp $r;
if (/$r/)
{
$line_matched = 1;
last;
}
}
unless ($line_matched)
{
if ($lines_printed++ < $max_printed_lines)
{
print "Line did not match any pattern: \"$_\"\n" unless $quiet;
}
$passed = 0;
}
}
exit ($passed == 0);
@@ -0,0 +1,34 @@
#!/usr/bin/perl
# SPDX-License-Identifier: GPL-2.0
@regexps = @ARGV;
$quiet = 1;
$quiet = 0 if (defined $ENV{TESTLOG_VERBOSITY} && $ENV{TESTLOG_VERBOSITY} ge 2);
%found = ();
$passed = 1;
while (<STDIN>)
{
s/\n//;
for $r (@regexps)
{
if (/$r/)
{
$found{$r} = 1;
}
}
}
for $r (@regexps)
{
if (exists $found{$r})
{
print "Regexp found: \"$r\"\n" unless $quiet;
$passed = 0;
}
}
exit ($passed == 0);
@@ -0,0 +1,143 @@
# 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
}
@@ -0,0 +1,268 @@
# SPDX-License-Identifier: GPL-2.0
export RE_NUMBER="[0-9\.]+"
# Number
# Examples:
# 123.456
export RE_NUMBER_HEX="[0-9A-Fa-f]+"
# Hexadecimal number
# Examples:
# 1234
# a58d
# aBcD
# deadbeef
export RE_DATE_YYYYMMDD="[0-9]{4}-(?:(?:01|03|05|07|08|10|12)-(?:[0-2][0-9]|3[0-1])|02-[0-2][0-9]|(?:(?:04|06|09|11)-(?:[0-2][0-9]|30)))"
# Date in YYYY-MM-DD form
# Examples:
# 1990-02-29
# 0015-07-31
# 2456-12-31
#! 2012-13-01
#! 1963-09-31
export RE_TIME="(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]"
# Time
# Examples:
# 15:12:27
# 23:59:59
#! 24:00:00
#! 11:25:60
#! 17:60:15
export RE_DATE_TIME="\w+\s+\w+\s+$RE_NUMBER\s+$RE_TIME\s+$RE_NUMBER"
# Time and date
# Examples:
# Wed Feb 12 10:46:26 2020
# Mon Mar 2 13:27:06 2020
#! St úno 12 10:57:21 CET 2020
#! Po úno 14 15:17:32 2010
export RE_ADDRESS="0x$RE_NUMBER_HEX"
# Memory address
# Examples:
# 0x123abc
# 0xffffffff9abe8ae8
# 0x0
export RE_ADDRESS_NOT_NULL="0x[0-9A-Fa-f]*[1-9A-Fa-f]+[0-9A-Fa-f]*"
# Memory address (not NULL)
# Examples:
# 0xffffffff9abe8ae8
#! 0x0
#! 0x0000000000000000
export RE_PROCESS_PID="[^\/]+\/\d+"
# A process with PID
# Example:
# sleep/4102
# test_overhead./866185
# in:imjournal/1096
# random#$& test/866607
export RE_EVENT_ANY="[\w\-\:\/_=,]+"
# Name of any event (universal)
# Examples:
# cpu-cycles
# cpu/event=12,umask=34/
# r41e1
# nfs:nfs_getattr_enter
export RE_EVENT="[\w\-:_]+"
# Name of an usual event
# Examples:
# cpu-cycles
export RE_EVENT_RAW="r$RE_NUMBER_HEX"
# Specification of a raw event
# Examples:
# r41e1
# r1a
export RE_EVENT_CPU="cpu/(\w+=$RE_NUMBER_HEX,?)+/p*"
# Specification of a CPU event
# Examples:
# cpu/event=12,umask=34/pp
export RE_EVENT_UNCORE="uncore/[\w_]+/"
# Specification of an uncore event
# Examples:
# uncore/qhl_request_local_reads/
export RE_EVENT_SUBSYSTEM="[\w\-]+:[\w\-]+"
# Name of an event from subsystem
# Examples:
# ext4:ext4_ordered_write_end
# sched:sched_switch
export RE_FILE_NAME="[\w\+\.-]+"
# A filename
# Examples:
# libstdc++.so.6
#! some/path
export RE_PATH_ABSOLUTE="(?:\/$RE_FILE_NAME)+"
# A full filepath
# Examples:
# /usr/lib64/somelib.so.5.4.0
# /lib/modules/4.3.0-rc5/kernel/fs/xfs/xfs.ko
# /usr/bin/mv
#! some/relative/path
#! ./some/relative/path
export RE_PATH="(?:$RE_FILE_NAME)?$RE_PATH_ABSOLUTE"
# A filepath
# Examples:
# /usr/lib64/somelib.so.5.4.0
# /lib/modules/4.3.0-rc5/kernel/fs/xfs/xfs.ko
# ./.emacs
# src/fs/file.c
export RE_DSO="(?:$RE_PATH_ABSOLUTE(?: \(deleted\))?|\[kernel\.kallsyms\]|\[unknown\]|\[vdso\]|\[kernel\.vmlinux\][\.\w]*)"
# A DSO name in various result tables
# Examples:
# /usr/lib64/somelib.so.5.4.0
# /usr/bin/somebinart (deleted)
# /lib/modules/4.3.0-rc5/kernel/fs/xfs/xfs.ko
# [kernel.kallsyms]
# [kernel.vmlinux]
# [vdso]
# [unknown]
export RE_LINE_COMMENT="^#.*"
# A comment line
# Examples:
# # Started on Thu Sep 10 11:43:00 2015
export RE_LINE_EMPTY="^\s*$"
# An empty line with possible whitespaces
# Examples:
#
export RE_LINE_RECORD1="^\[\s+perf\s+record:\s+Woken up $RE_NUMBER times? to write data\s+\].*$"
# The first line of perf-record "OK" output
# Examples:
# [ perf record: Woken up 1 times to write data ]
export RE_LINE_RECORD2="^\[\s+perf\s+record:\s+Captured and wrote $RE_NUMBER\s*MB\s+(?:[\w\+\.-]*(?:$RE_PATH)?\/)?perf\.data(?:\.\d+)?\s*\(~?$RE_NUMBER samples\)\s+\].*$"
# The second line of perf-record "OK" output
# Examples:
# [ perf record: Captured and wrote 0.405 MB perf.data (109 samples) ]
# [ perf record: Captured and wrote 0.405 MB perf.data (~109 samples) ]
# [ perf record: Captured and wrote 0.405 MB /some/temp/dir/perf.data (109 samples) ]
# [ perf record: Captured and wrote 0.405 MB ./perf.data (109 samples) ]
# [ perf record: Captured and wrote 0.405 MB ./perf.data.3 (109 samples) ]
export RE_LINE_RECORD2_TOLERANT="^\[\s+perf\s+record:\s+Captured and wrote $RE_NUMBER\s*MB\s+(?:[\w\+\.-]*(?:$RE_PATH)?\/)?perf\.data(?:\.\d+)?\s*(?:\(~?$RE_NUMBER samples\))?\s+\].*$"
# The second line of perf-record "OK" output, even no samples is OK here
# Examples:
# [ perf record: Captured and wrote 0.405 MB perf.data (109 samples) ]
# [ perf record: Captured and wrote 0.405 MB perf.data (~109 samples) ]
# [ perf record: Captured and wrote 0.405 MB /some/temp/dir/perf.data (109 samples) ]
# [ perf record: Captured and wrote 0.405 MB ./perf.data (109 samples) ]
# [ perf record: Captured and wrote 0.405 MB ./perf.data.3 (109 samples) ]
# [ perf record: Captured and wrote 0.405 MB perf.data ]
export RE_LINE_RECORD2_TOLERANT_FILENAME="^\[\s+perf\s+record:\s+Captured and wrote $RE_NUMBER\s*MB\s+(?:[\w\+\.-]*(?:$RE_PATH)?\/)?perf\w*\.data(?:\.\d+)?\s*\(~?$RE_NUMBER samples\)\s+\].*$"
# The second line of perf-record "OK" output
# Examples:
# [ perf record: Captured and wrote 0.405 MB perf.data (109 samples) ]
# [ perf record: Captured and wrote 0.405 MB perf_ls.data (~109 samples) ]
# [ perf record: Captured and wrote 0.405 MB perf_aNyCaSe.data (109 samples) ]
# [ perf record: Captured and wrote 0.405 MB ./perfdata.data.3 (109 samples) ]
#! [ perf record: Captured and wrote 0.405 MB /some/temp/dir/my_own.data (109 samples) ]
#! [ perf record: Captured and wrote 0.405 MB ./UPPERCASE.data (109 samples) ]
#! [ perf record: Captured and wrote 0.405 MB ./aNyKiNDoF.data.3 (109 samples) ]
#! [ perf record: Captured and wrote 0.405 MB perf.data ]
export RE_LINE_TRACE_FULL="^\s*$RE_NUMBER\s*\(\s*$RE_NUMBER\s*ms\s*\):\s*$RE_PROCESS_PID\s+.*\)\s+=\s+(:?\-?$RE_NUMBER|0x$RE_NUMBER_HEX).*$"
# A line of perf-trace output
# Examples:
# 0.115 ( 0.005 ms): sleep/4102 open(filename: 0xd09e2ab2, flags: CLOEXEC ) = 3
# 0.157 ( 0.005 ms): sleep/4102 mmap(len: 3932736, prot: EXEC|READ, flags: PRIVATE|DENYWRITE, fd: 3 ) = 0x7f89d0605000
#! 0.115 ( 0.005 ms): sleep/4102 open(filename: 0xd09e2ab2, flags: CLOEXEC ) =
export RE_LINE_TRACE_ONE_PROC="^\s*$RE_NUMBER\s*\(\s*$RE_NUMBER\s*ms\s*\):\s*\w+\(.*\)\s+=\s+(?:\-?$RE_NUMBER|0x$RE_NUMBER_HEX).*$"
# A line of perf-trace output
# Examples:
# 0.115 ( 0.005 ms): open(filename: 0xd09e2ab2, flags: CLOEXEC ) = 3
# 0.157 ( 0.005 ms): mmap(len: 3932736, prot: EXEC|READ, flags: PRIVATE|DENYWRITE, fd: 3 ) = 0x7f89d0605000
#! 0.115 ( 0.005 ms): open(filename: 0xd09e2ab2, flags: CLOEXEC ) =
export RE_LINE_TRACE_CONTINUED="^\s*(:?$RE_NUMBER|\?)\s*\(\s*($RE_NUMBER\s*ms\s*)?\):\s*($RE_PROCESS_PID\s*)?\.\.\.\s*\[continued\]:\s+\w+\(\).*\s+=\s+(?:\-?$RE_NUMBER|0x$RE_NUMBER_HEX).*$"
# A line of perf-trace output
# Examples:
# 0.000 ( 0.000 ms): ... [continued]: nanosleep()) = 0
# 0.000 ( 0.000 ms): ... [continued]: nanosleep()) = 0x00000000
# ? ( ): packagekitd/94838 ... [continued]: poll()) = 0 (Timeout)
#! 0.000 ( 0.000 ms): ... [continued]: nanosleep()) =
export RE_LINE_TRACE_UNFINISHED="^\s*$RE_NUMBER\s*\(\s*\):\s*$RE_PROCESS_PID\s+.*\)\s+\.\.\.\s*$"
# A line of perf-trace output
# Examples:
# 901.040 ( ): in:imjournal/1096 ppoll(ufds: 0x7f701a5adb70, nfds: 1, tsp: 0x7f701a5adaf0, sigsetsize: 8) ...
# 613.727 ( ): gmain/1099 poll(ufds: 0x56248f6b64b0, nfds: 2, timeout_msecs: 3996) ...
export RE_LINE_TRACE_SUMMARY_HEADER="\s*syscall\s+calls\s+(?:errors\s+)?total\s+min\s+avg\s+max\s+stddev"
# A header of a perf-trace summary table
# Example:
# syscall calls total min avg max stddev
# syscall calls errors total min avg max stddev
export RE_LINE_TRACE_SUMMARY_CONTENT="^\s*\w+\s+(?:$RE_NUMBER\s+){5,6}$RE_NUMBER%"
# A line of a perf-trace summary table
# Example:
# open 3 0.017 0.005 0.006 0.007 10.90%
# openat 2 0 0.017 0.008 0.009 0.010 12.29%
export RE_LINE_REPORT_CONTENT="^\s+$RE_NUMBER%\s+\w+\s+\S+\s+\S+\s+\S+" # FIXME
# A line from typicap perf report --stdio output
# Example:
# 100.00% sleep [kernel.vmlinux] [k] syscall_return_slowpath
export RE_TASK="\s+[\w~\/ \.\+:#-]+(?:\[-1(?:\/\d+)?\]|\[\d+(?:\/\d+)?\])"
# A name of a task used for perf sched timehist -s
# Example:
# sleep[62755]
# runtest.sh[62762]
# gmain[705/682]
# xfsaild/dm-0[495]
# kworker/u8:1-ev[62714]
# :-1[-1/62756]
# :-1[-1]
# :-1[62756]
export RE_SEGFAULT=".*(?:Segmentation\sfault|SIGSEGV|\score\s|dumped|segfault).*"
# Possible variations of the segfault message
# Example:
# /bin/bash: line 1: 32 Segmentation fault timeout 15s
# Segmentation fault (core dumped)
# Program terminated with signal SIGSEGV
#! WARNING: 12323431 isn't a 'cpu_core', please use a CPU list in the 'cpu_core' range (0-15)
@@ -0,0 +1,105 @@
# SPDX-License-Identifier: GPL-2.0
#
# settings.sh
# Author: Michael Petlan <mpetlan@redhat.com>
#
# Description:
#
# This file contains global settings for the whole testsuite.
# Its purpose is to make it easier when it is necessary i.e. to
# change the usual sample command which is used in all of the tests
# in many files.
#
# This file is intended to be sourced in the tests.
#
#### which perf to use in the testing
export CMD_PERF=${CMD_PERF:-`which perf`}
#### basic programs examinated by perf
export CMD_BASIC_SLEEP="sleep 0.1"
export CMD_QUICK_SLEEP="sleep 0.01"
export CMD_LONGER_SLEEP="sleep 2"
export CMD_DOUBLE_LONGER_SLEEP="sleep 4"
export CMD_VERY_LONG_SLEEP="sleep 30"
export CMD_SIMPLE="true"
#### testsuite run mode
# define constants:
export RUNMODE_BASIC=0
export RUNMODE_STANDARD=1
export RUNMODE_EXPERIMENTAL=2
# default runmode is STANDARD
export PERFTOOL_TESTSUITE_RUNMODE=${PERFTOOL_TESTSUITE_RUNMODE:-$RUNMODE_STANDARD}
#### common settings
export TESTLOG_VERBOSITY=${TESTLOG_VERBOSITY:-2}
export TESTLOG_FORCE_COLOR=${TESTLOG_FORCE_COLOR:-n}
export TESTLOG_ERR_MSG_MAX_LINES=${TESTLOG_ERR_MSG_MAX_LINES:-20}
export TESTLOG_CLEAN=${TESTLOG_CLEAN:-y}
#### other environment-related settings
export TEST_IGNORE_MISSING_PMU=${TEST_IGNORE_MISSING_PMU:-n}
#### clear locale
export LC_ALL=C
#### colors
if [ -t 1 ] || [ "$TESTLOG_FORCE_COLOR" = "yes" ]; then
export MPASS="\e[32m"
export MALLPASS="\e[1;32m"
export MFAIL="\e[31m"
export MALLFAIL="\e[1;31m"
export MWARN="\e[1;35m"
export MSKIP="\e[33m"
export MHIGH="\e[1;33m"
export MEND="\e[m"
else
export MPASS=""
export MALLPASS=""
export MFAIL=""
export MALLFAIL=""
export MWARN=""
export MSKIP=""
export MHIGH=""
export MEND=""
fi
### general info
DIR_PATH=`dirname "$(readlink -e "$0")"`
TEST_NAME=`basename $DIR_PATH | sed 's/base/perf/'`; export TEST_NAME
MY_ARCH=`arch`; export MY_ARCH
# storing logs and temporary files variables
if [ -n "$PERFSUITE_RUN_DIR" ]; then
# when $PERFSUITE_RUN_DIR is set to something, all the logs and temp files will be placed there
# --> the $PERFSUITE_RUN_DIR/perf_something/examples and $PERFSUITE_RUN_DIR/perf_something/logs
# dirs will be used for that
PERFSUITE_RUN_DIR=`readlink -f $PERFSUITE_RUN_DIR`; export PERFSUITE_RUN_DIR
export CURRENT_TEST_DIR="$PERFSUITE_RUN_DIR/$TEST_NAME"
export MAKE_TARGET_DIR="$CURRENT_TEST_DIR/examples"
export LOGS_DIR="$CURRENT_TEST_DIR/logs"
export HEADER_TAR_DIR="$CURRENT_TEST_DIR/header_tar"
test -d "$CURRENT_TEST_DIR" || mkdir -p "$CURRENT_TEST_DIR"
test -d "$LOGS_DIR" || mkdir -p "$LOGS_DIR"
else
# when $PERFSUITE_RUN_DIR is not set, logs will be placed here
export CURRENT_TEST_DIR="."
export LOGS_DIR="."
export HEADER_TAR_DIR="./header_tar"
fi
#### test parametrization
if [ ! -d ./common ]; then
# set parameters based on runmode
if [ -f ../common/parametrization.$PERFTOOL_TESTSUITE_RUNMODE.sh ]; then
# shellcheck source=/dev/null
. ../common/parametrization.$PERFTOOL_TESTSUITE_RUNMODE.sh
fi
# if some parameters haven't been set until now, set them to default
if [ -f ../common/parametrization.sh ]; then
. ../common/parametrization.sh
fi
fi