From: "Steven Rostedt (VMware)" <rost...@goodmis.org>

Just writing into the set_ftrace_filter file does not reset triggers, even
though it can reset the function list. Triggers require writing the trigger
name with a "!" prepended. It's worse that it requires the number if the
trigger has a count associated to it.

Add a reset_ftrace_filter function to the ftrace self tests to allow for the
tests to have a generic way to clear them. It also resets any functions that
are listed in that file as well.

Signed-off-by: Steven Rostedt (VMware) <rost...@goodmis.org>
---
 tools/testing/selftests/ftrace/test.d/functions | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/tools/testing/selftests/ftrace/test.d/functions 
b/tools/testing/selftests/ftrace/test.d/functions
index 91de1a8e4f19..9aec6fcb7729 100644
--- a/tools/testing/selftests/ftrace/test.d/functions
+++ b/tools/testing/selftests/ftrace/test.d/functions
@@ -30,6 +30,27 @@ reset_events_filter() { # reset all current setting filters
     done
 }
 
+reset_ftrace_filter() { # reset all triggers in set_ftrace_filter
+    echo > set_ftrace_filter
+    grep -v '^#' set_ftrace_filter | while read t; do
+       tr=`echo $t | cut -d: -f2`
+       if [ "$tr" == "" ]; then
+           continue
+       fi
+       if [ $tr == "enable_event" -o $tr == "disable_event" ]; then
+           tr=`echo $t | cut -d: -f1-4`
+           limit=`echo $t | cut -d: -f5`
+       else
+           tr=`echo $t | cut -d: -f1-2`
+           limit=`echo $t | cut -d: -f3`
+       fi
+       if [ "$limit" != "unlimited" ]; then
+           tr="$tr:$limit"
+       fi
+       echo "!$tr" > set_ftrace_filter
+    done
+}
+
 disable_events() {
     echo 0 > events/enable
 }
-- 
2.10.2


Reply via email to