From: "Steven Rostedt (Google)" rostedt@goodmis.org
The function tracer is tested to see if pid filtering works. Add a test to test function_graph tracer as well, but only if the function_graph tracer is enabled for the top level or instance.
Cc: linux-kselftest@vger.kernel.org Signed-off-by: Steven Rostedt (Google) rostedt@goodmis.org --- .../ftrace/test.d/ftrace/func-filter-pid.tc | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc index 2f7211254529..c6fc9d31a496 100644 --- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc @@ -14,6 +14,11 @@ if [ ! -f options/function-fork ]; then echo "no option for function-fork found. Option will not be tested." fi
+if [ ! -f options/funcgraph-proc ]; then + do_funcgraph_proc=0 + echo "no option for function-fork found. Option will not be tested." +fi + read PID _ < /proc/self/stat
if [ $do_function_fork -eq 1 ]; then @@ -21,12 +26,18 @@ if [ $do_function_fork -eq 1 ]; then orig_value=`grep function-fork trace_options` fi
+if [ $do_funcgraph_proc -eq 1 ]; then + orig_value2=`cat options/funcgraph-proc` +fi + do_reset() { - if [ $do_function_fork -eq 0 ]; then - return + if [ $do_function_fork -eq 1 ]; then + echo $orig_value > trace_options fi
- echo $orig_value > trace_options + if [ $do_funcgraph_proc -eq 1 ]; then + echo $orig_value2 > options/funcgraph-proc + fi }
fail() { # msg @@ -36,13 +47,15 @@ fail() { # msg }
do_test() { + TRACER=$1 + disable_tracing
echo do_execve* > set_ftrace_filter echo $FUNCTION_FORK >> set_ftrace_filter
echo $PID > set_ftrace_pid - echo function > current_tracer + echo $TRACER > current_tracer
if [ $do_function_fork -eq 1 ]; then # don't allow children to be traced @@ -82,7 +95,11 @@ do_test() { fi }
-do_test +do_test function +if grep -s function_graph available_tracers; then + do_test function_graph +fi + do_reset
exit 0