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:
Родитель
1e11b7dbef
Коммит
fa33e6236f
|
@ -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.
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче