]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
tracing/selftest: Add test to test simple snapshot trigger for trace_marker
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 25 May 2018 21:39:25 +0000 (17:39 -0400)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Mon, 4 Jun 2018 21:28:01 +0000 (17:28 -0400)
Several complex trigger tests were added for trace_marker, but not a simple
one. This could be used to help diagnose a problem with the code by giving a
reference between how complex a trigger is that fails.

Suggested-by: Masami Hiramatsu <mhiramat@kernel.org>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc [new file with mode: 0644]

diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
new file mode 100644 (file)
index 0000000..6748e8c
--- /dev/null
@@ -0,0 +1,74 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: trace_marker trigger - test snapshot trigger
+# flags: instance
+
+do_reset() {
+    reset_trigger
+    echo > set_event
+    echo 0 > snapshot
+    clear_trace
+}
+
+fail() { #msg
+    do_reset
+    echo $1
+    exit_fail
+}
+
+if [ ! -f set_event ]; then
+    echo "event tracing is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f snapshot ]; then
+    echo "snapshot is not supported"
+    exit_unsupported
+fi
+
+if [ ! -d events/ftrace/print ]; then
+    echo "event trace_marker is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f events/ftrace/print/trigger ]; then
+    echo "event trigger is not supported"
+    exit_unsupported
+fi
+
+test_trace() {
+    file=$1
+    x=$2
+
+    cat $file | while read line; do
+       comment=`echo $line | sed -e 's/^#//'`
+       if [ "$line" != "$comment" ]; then
+           continue
+       fi
+       echo "testing $line for >$x<"
+       match=`echo $line | sed -e "s/>$x<//"`
+       if [ "$line" == "$match" ]; then
+           fail "$line does not have >$x< in it"
+       fi
+       let x=$x+2
+    done
+}
+
+do_reset
+
+echo "Test snapshot trace_marker tigger"
+
+echo 'snapshot' > events/ftrace/print/trigger
+
+# make sure the snapshot is allocated
+
+grep -q 'Snapshot is allocated' snapshot
+
+for i in `seq 1 10` ; do echo "hello >$i<" > trace_marker; done
+
+test_trace trace 1
+test_trace snapshot 2
+
+do_reset
+
+exit 0