Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/ftrace: Check required filter files before running test

Without CONFIG_DYNAMIC_FTRACE, some tests get failure because required
filter files(set_ftrace_filter/available_filter_functions/stack_trace_filter)
are missing. So implement check_filter_file() and make all related tests
check required filter files by it.

BTW: set_ftrace_filter and available_filter_functions are introduced together
so just check either of them.

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

authored by

Xiao Yang and committed by
Shuah Khan
16bcd0f5 b87080ea

+23 -30
+1 -4
tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
··· 10 10 exit_unsupported 11 11 fi 12 12 13 - if [ ! -f set_ftrace_filter ]; then 14 - echo "set_ftrace_filter not found? Is dynamic ftrace not set?" 15 - exit_unsupported 16 - fi 13 + check_filter_file set_ftrace_filter 17 14 18 15 do_reset() { 19 16 if [ -e /proc/sys/kernel/stack_tracer_enabled ]; then
+2
tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
··· 9 9 exit_unsupported 10 10 fi 11 11 12 + check_filter_file set_ftrace_filter 13 + 12 14 fail() { # msg 13 15 echo $1 14 16 exit_fail
+2
tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
··· 9 9 exit_unsupported 10 10 fi 11 11 12 + check_filter_file set_ftrace_filter 13 + 12 14 disable_tracing 13 15 clear_trace 14 16
+1 -4
tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
··· 15 15 exit_unsupported 16 16 fi 17 17 18 - if [ ! -f set_ftrace_filter ]; then 19 - echo "set_ftrace_filter not found? Is function tracer not set?" 20 - exit_unsupported 21 - fi 18 + check_filter_file set_ftrace_filter 22 19 23 20 do_function_fork=1 24 21
+1 -4
tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
··· 16 16 exit_unsupported 17 17 fi 18 18 19 - if [ ! -f set_ftrace_filter ]; then 20 - echo "set_ftrace_filter not found? Is function tracer not set?" 21 - exit_unsupported 22 - fi 19 + check_filter_file set_ftrace_filter 23 20 24 21 do_function_fork=1 25 22
+1 -1
tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
··· 3 3 # description: ftrace - stacktrace filter command 4 4 # flags: instance 5 5 6 - [ ! -f set_ftrace_filter ] && exit_unsupported 6 + check_filter_file set_ftrace_filter 7 7 8 8 echo _do_fork:stacktrace >> set_ftrace_filter 9 9
+1 -4
tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
··· 11 11 # 12 12 13 13 # The triggers are set within the set_ftrace_filter file 14 - if [ ! -f set_ftrace_filter ]; then 15 - echo "set_ftrace_filter not found? Is dynamic ftrace not set?" 16 - exit_unsupported 17 - fi 14 + check_filter_file set_ftrace_filter 18 15 19 16 do_reset() { 20 17 reset_ftrace_filter
+1 -1
tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
··· 2 2 # SPDX-License-Identifier: GPL-2.0 3 3 # description: ftrace - function trace on module 4 4 5 - [ ! -f set_ftrace_filter ] && exit_unsupported 5 + check_filter_file set_ftrace_filter 6 6 7 7 : "mod: allows to filter a non exist function" 8 8 echo 'non_exist_func:mod:non_exist_module' > set_ftrace_filter
+1 -4
tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
··· 18 18 exit_unsupported; 19 19 fi 20 20 21 - if [ ! -f set_ftrace_filter ]; then 22 - echo "set_ftrace_filter not found? Is dynamic ftrace not set?" 23 - exit_unsupported 24 - fi 21 + check_filter_file set_ftrace_filter 25 22 26 23 if [ ! -f function_profile_enabled ]; then 27 24 echo "function_profile_enabled not found, function profiling enabled?"
+1 -4
tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
··· 10 10 # 11 11 12 12 # The triggers are set within the set_ftrace_filter file 13 - if [ ! -f set_ftrace_filter ]; then 14 - echo "set_ftrace_filter not found? Is dynamic ftrace not set?" 15 - exit_unsupported 16 - fi 13 + check_filter_file set_ftrace_filter 17 14 18 15 fail() { # mesg 19 16 echo $1
+2
tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
··· 8 8 exit_unsupported 9 9 fi 10 10 11 + check_filter_file stack_trace_filter 12 + 11 13 echo > stack_trace_filter 12 14 echo 0 > stack_max_size 13 15 echo 1 > /proc/sys/kernel/stack_tracer_enabled
+1 -4
tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
··· 11 11 # 12 12 13 13 # The triggers are set within the set_ftrace_filter file 14 - if [ ! -f set_ftrace_filter ]; then 15 - echo "set_ftrace_filter not found? Is dynamic ftrace not set?" 16 - exit_unsupported 17 - fi 14 + check_filter_file set_ftrace_filter 18 15 19 16 fail() { # mesg 20 17 echo $1
+6
tools/testing/selftests/ftrace/test.d/functions
··· 1 + check_filter_file() { # check filter file introduced by dynamic ftrace 2 + if [ ! -f "$1" ]; then 3 + echo "$1 not found? Is dynamic ftrace not set?" 4 + exit_unsupported 5 + fi 6 + } 1 7 2 8 clear_trace() { # reset trace output 3 9 echo > trace
+2
tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
··· 5 5 [ -f kprobe_events ] || exit_unsupported # this is configurable 6 6 grep "function" available_tracers || exit_unsupported # this is configurable 7 7 8 + check_filter_file set_ftrace_filter 9 + 8 10 # prepare 9 11 echo nop > current_tracer 10 12 echo _do_fork > set_ftrace_filter