selftests/ftrace: Add "requires:" list support

Introduce "requires:" list to check required ftrace interface
for each test. This will simplify the interface checking code
and unify the error message. Another good point is, it can
skip the ftrace initializing.

Note that this requires list must be written as a shell
comment.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Reviewed-by: Tom Zanussi <zanussi@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
Masami Hiramatsu 2020-06-03 11:40:28 +09:00 коммит произвёл Shuah Khan
Родитель 1e11b7dbef
Коммит fa33e6236f
3 изменённых файлов: 17 добавлений и 1 удалений

Просмотреть файл

@ -267,6 +267,11 @@ testcase() { # testfile
prlog -n "[$CASENO]$INSTANCE$desc"
}
checkreq() { # testfile
requires=`grep "^#[ \t]*requires:" $1 | cut -f2- -d:`
check_requires $requires
}
test_on_instance() { # testfile
grep -q "^#[ \t]*flags:.*instance" $1
}
@ -356,7 +361,8 @@ trap 'SIG_RESULT=$XFAIL' $SIG_XFAIL
__run_test() { # testfile
# setup PID and PPID, $$ is not updated.
(cd $TRACING_DIR; read PID _ < /proc/self/stat; set -e; set -x; initialize_ftrace; . $1)
(cd $TRACING_DIR; read PID _ < /proc/self/stat; set -e; set -x;
checkreq $1; initialize_ftrace; . $1)
[ $? -ne 0 ] && kill -s $SIG_FAIL $SIG_PID
}

Просмотреть файл

@ -113,6 +113,15 @@ initialize_ftrace() { # Reset ftrace to initial-state
enable_tracing
}
check_requires() { # Check required files
for i in $* ; do
if [ ! -e $i ]; then
echo "Required feature interface $i doesn't exist."
exit_unsupported
fi
done
}
LOCALHOST=127.0.0.1
yield() {

Просмотреть файл

@ -1,6 +1,7 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: %HERE DESCRIBE WHAT THIS DOES%
# requires: %HERE LIST THE REQUIRED FILES%
# you have to add ".tc" extention for your testcase file
# Note that all tests are run with "errexit" option.