lkml.org 
[lkml]   [2020]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 3/7] selftests/ftrace: Add "requires:" list support
    Date
    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>
    ---
    tools/testing/selftests/ftrace/ftracetest | 8 +++++++-
    tools/testing/selftests/ftrace/test.d/functions | 9 +++++++++
    tools/testing/selftests/ftrace/test.d/template | 1 +
    3 files changed, 17 insertions(+), 1 deletion(-)

    diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
    index d3f6652311ef..cdf7940b6610 100755
    --- a/tools/testing/selftests/ftrace/ftracetest
    +++ b/tools/testing/selftests/ftrace/ftracetest
    @@ -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
    }

    diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
    index 697c77ef2e2b..5100eb1ada0f 100644
    --- a/tools/testing/selftests/ftrace/test.d/functions
    +++ b/tools/testing/selftests/ftrace/test.d/functions
    @@ -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() {
    diff --git a/tools/testing/selftests/ftrace/test.d/template b/tools/testing/selftests/ftrace/test.d/template
    index e1a5d14c4eaf..d679e5c9e1ee 100644
    --- a/tools/testing/selftests/ftrace/test.d/template
    +++ b/tools/testing/selftests/ftrace/test.d/template
    @@ -1,6 +1,7 @@
    #!/bin/sh
    # SPDX-License-Identifier: GPL-2.0
    # description: %HERE DESCRIBE WHAT THIS DOES%
    +# requires: %HERE LIST UP REQUIRED FILES%
    # you have to add ".tc" extention for your testcase file
    # Note that all tests are run with "errexit" option.

    \
     
     \ /
      Last update: 2020-06-02 11:09    [W:4.234 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site