Commit 305c8388 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Shuah Khan

selftests/ftrace: Support ":tracer" suffix for requires

Add ":tracer" suffix support for the requires list, so that
the testcase can list up the required tracer (e.g. function)
to the requires list.

For example, if the testcase requires function_graph tracer,
it can write requires list as below instead of checking
available_tracers.

# requires: function_graph:tracer
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 74e60728
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: ftrace - function graph filters with stack tracer
# requires: stack_trace set_ftrace_filter
# requires: stack_trace set_ftrace_filter function_graph:tracer
# Make sure that function graph filtering works, and is not
# affected by other tracers enabled (like stack tracer)
if ! grep -q function_graph available_tracers; then
echo "no function graph tracer configured"
exit_unsupported
fi
do_reset() {
if [ -e /proc/sys/kernel/stack_tracer_enabled ]; then
echo 0 > /proc/sys/kernel/stack_tracer_enabled
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: ftrace - function graph filters
# requires: set_ftrace_filter
# requires: set_ftrace_filter function_graph:tracer
# Make sure that function graph filtering works
if ! grep -q function_graph available_tracers; then
echo "no function graph tracer configured"
exit_unsupported
fi
fail() { # msg
echo $1
exit_fail
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: ftrace - function glob filters
# requires: set_ftrace_filter
# requires: set_ftrace_filter function:tracer
# Make sure that function glob matching filter works.
if ! grep -q function available_tracers; then
echo "no function tracer configured"
exit_unsupported
fi
disable_tracing
clear_trace
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: ftrace - function pid notrace filters
# requires: set_ftrace_notrace_pid set_ftrace_filter
# requires: set_ftrace_notrace_pid set_ftrace_filter function:tracer
# flags: instance
# Make sure that function pid matching filter with notrace works.
if ! grep -q function available_tracers; then
echo "no function tracer configured"
exit_unsupported
fi
do_function_fork=1
if [ ! -f options/function-fork ]; then
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: ftrace - function pid filters
# requires: set_ftrace_pid set_ftrace_filter
# requires: set_ftrace_pid set_ftrace_filter function:tracer
# flags: instance
# Make sure that function pid matching filter works.
# Also test it on an instance directory
if ! grep -q function available_tracers; then
echo "no function tracer configured"
exit_unsupported
fi
do_function_fork=1
if [ ! -f options/function-fork ]; then
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: ftrace - function trace with cpumask
# requires: function:tracer
if ! which nproc ; then
nproc() {
......@@ -15,11 +16,6 @@ if [ $NP -eq 1 ] ;then
exit_unresolved
fi
if ! grep -q "function" available_tracers ; then
echo "Function trace is not enabled"
exit_unsupported
fi
ORIG_CPUMASK=`cat tracing_cpumask`
do_reset() {
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: ftrace - function profiler with function tracing
# requires: function_profile_enabled set_ftrace_filter
# requires: function_profile_enabled set_ftrace_filter function_graph:tracer
# There was a bug after a rewrite of the ftrace infrastructure that
# caused the function_profiler not to be able to run with the function
......@@ -14,10 +14,6 @@
# This test triggers those bugs on those kernels.
#
# We need function_graph and profiling to to run this test
if ! grep -q function_graph available_tracers; then
echo "no function graph tracer configured"
exit_unsupported;
fi
fail() { # mesg
echo $1
......
......@@ -106,9 +106,15 @@ initialize_ftrace() { # Reset ftrace to initial-state
enable_tracing
}
check_requires() { # Check required files
check_requires() { # Check required files and tracers
for i in $* ; do
if [ ! -e $i ]; then
t=${i%:tracer}
if [ $t != $i ]; then
if ! grep -wq $t available_tracers ; then
echo "Required tracer $t is not configured."
exit_unsupported
fi
elif [ ! -e $i ]; then
echo "Required feature interface $i doesn't exist."
exit_unsupported
fi
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: Kprobe dynamic event with function tracer
# requires: kprobe_events stack_trace_filter
grep "function" available_tracers || exit_unsupported # this is configurable
# requires: kprobe_events stack_trace_filter function:tracer
# prepare
echo nop > current_tracer
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: test for the preemptirqsoff tracer
# requires: preemptoff:tracer irqsoff:tracer
MOD=preemptirq_delay_test
......@@ -27,9 +28,6 @@ unres() { #msg
modprobe $MOD || unres "$MOD module not available"
rmmod $MOD
grep -q "preemptoff" available_tracers || unsup "preemptoff tracer not enabled"
grep -q "irqsoff" available_tracers || unsup "irqsoff tracer not enabled"
reset_tracer
# Simulate preemptoff section for half a second couple of times
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: %HERE DESCRIBE WHAT THIS DOES%
# requires: %HERE LIST THE REQUIRED FILES%
# requires: %HERE LIST THE REQUIRED FILES OR TRACERS%
# The required tracer needs :tracer suffix, e.g. function:tracer
# you have to add ".tc" extention for your testcase file
# Note that all tests are run with "errexit" option.
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: Test wakeup tracer
# requires: wakeup:tracer
if ! which chrt ; then
echo "chrt is not found. This test requires nice command."
exit_unresolved
fi
if ! grep -wq "wakeup" available_tracers ; then
echo "wakeup tracer is not supported"
exit_unsupported
fi
echo wakeup > current_tracer
echo 1 > tracing_on
echo 0 > tracing_max_latency
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: Test wakeup RT tracer
# requires: wakeup_rt:tracer
if ! which chrt ; then
echo "chrt is not found. This test requires chrt command."
exit_unresolved
fi
if ! grep -wq "wakeup_rt" available_tracers ; then
echo "wakeup_rt tracer is not supported"
exit_unsupported
fi
echo wakeup_rt > current_tracer
echo 1 > tracing_on
echo 0 > tracing_max_latency
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment