2 # description: ftrace - test for function event triggers
5 # Ftrace allows to add triggers to functions, such as enabling or disabling
6 # tracing, enabling or disabling trace events, or recording a stack trace
7 # within the ring buffer.
9 # This test is designed to test event triggers
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?"
36 echo "Testing function probes with events:"
38 EVENT="sched:sched_switch"
39 EVENT_ENABLE="events/sched/sched_switch/enable"
42 grep -v '^#' trace | wc -l
45 test_event_enabled() {
49 if [ "$e" != $val ]; then
50 echo "Expected $val but found $e"
55 run_enable_disable() {
59 check_enable_star=$4 # 1*
60 check_disable_star=$5 # 0*
63 if [ $cnt -ne 0 ]; then
64 fail "Found junk in trace file"
67 echo "$Enable event all the time"
69 echo $check_disable > $EVENT_ENABLE
72 test_event_enabled $check_disable
74 echo "schedule:${enable}_event:$EVENT" > set_ftrace_filter
76 echo " make sure it works 5 times"
81 test_event_enabled $check_enable_star
83 echo $check_disable > $EVENT_ENABLE
86 echo " make sure it's still works"
87 test_event_enabled $check_enable_star
91 echo " make sure it only works 3 times"
93 echo $check_disable > $EVENT_ENABLE
96 echo "schedule:${enable}_event:$EVENT:3" > set_ftrace_filter
101 test_event_enabled $check_enable_star
103 echo $check_disable > $EVENT_ENABLE
107 echo " make sure it stop working"
108 test_event_enabled $check_disable_star
113 run_enable_disable enable Enable 0 "1*" "0*"
114 run_enable_disable disable Disable 1 "0*" "1*"