Commit fa33e623 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Shuah Khan
Browse files

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: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Reviewed-by: default avatarTom Zanussi <zanussi@kernel.org>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 1e11b7db
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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
}

+9 −0
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
#!/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.