aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@kernel.org>2014-11-05 21:04:30 -0500
committerSteven Rostedt <rostedt@goodmis.org>2014-11-06 08:40:59 -0500
commit815b18ea66d6fb67a3534edf68dfa23bdcec0485 (patch)
treeecf79057f82581460578072355f7fde8ba50ec6c
parentce1ac64b930a9f702cc89af590728df6b345ab31 (diff)
ftracetest: Add basic event tracing test cases
This patch adds basic event tracing tests like enable/disable with top-level, subsystem-level and individual event files. # ./ftracetest === Ftrace unit tests === [1] Basic trace file check [PASS] [2] Basic trace clock test [PASS] [3] Basic event tracing check [PASS] [4] Basic test for tracers [PASS] [5] event tracing - enable/disable with top level files [PASS] [6] event tracing - enable/disable with subsystem level files [PASS] [7] event tracing - enable/disable with event level files [PASS] [8] ftrace - function graph filters [PASS] [9] ftrace - function profiler with function tracing [PASS] [10] ftrace - function graph filters with stack tracer [PASS] [11] Kretprobe dynamic event with arguments [PASS] [12] Kprobe dynamic event - busy event check [PASS] [13] Kprobe dynamic event with arguments [PASS] [14] Kprobe dynamic event - adding and removing [PASS] # of passed: 14 # of failed: 0 # of unresolved: 0 # of untested: 0 # of unsupported: 0 # of xfailed: 0 # of undefined(test bug): 0 Link: http://lkml.kernel.org/r/1415239470-28705-3-git-send-email-namhyung@kernel.org Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--tools/testing/selftests/ftrace/test.d/00basic/basic4.tc5
-rw-r--r--tools/testing/selftests/ftrace/test.d/event/event-enable.tc53
-rw-r--r--tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc53
-rw-r--r--tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc47
4 files changed, 158 insertions, 0 deletions
diff --git a/tools/testing/selftests/ftrace/test.d/00basic/basic4.tc b/tools/testing/selftests/ftrace/test.d/00basic/basic4.tc
new file mode 100644
index 000000000000..fd9c49a13612
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/00basic/basic4.tc
@@ -0,0 +1,5 @@
1#!/bin/sh
2# description: Basic event tracing check
3test -f available_events -a -f set_event -a -d events
4# check scheduler events are available
5grep -q sched available_events && exit 0 || exit -1 \ No newline at end of file
diff --git a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
new file mode 100644
index 000000000000..668616d9bb03
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
@@ -0,0 +1,53 @@
1#!/bin/sh
2# description: event tracing - enable/disable with event level files
3
4do_reset() {
5 echo > set_event
6 clear_trace
7}
8
9fail() { #msg
10 do_reset
11 echo $1
12 exit -1
13}
14
15if [ ! -f set_event -o ! -d events/sched ]; then
16 echo "event tracing is not supported"
17 exit_unsupported
18fi
19
20reset_tracer
21do_reset
22
23echo 'sched:sched_switch' > set_event
24usleep 1
25
26count=`cat trace | grep sched_switch | wc -l`
27if [ $count -eq 0 ]; then
28 fail "sched_switch events are not recorded"
29fi
30
31do_reset
32
33echo 1 > events/sched/sched_switch/enable
34usleep 1
35
36count=`cat trace | grep sched_switch | wc -l`
37if [ $count -eq 0 ]; then
38 fail "sched_switch events are not recorded"
39fi
40
41do_reset
42
43echo 0 > events/sched/sched_switch/enable
44usleep 1
45
46count=`cat trace | grep sched_switch | wc -l`
47if [ $count -ne 0 ]; then
48 fail "sched_switch events should not be recorded"
49fi
50
51do_reset
52
53exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
new file mode 100644
index 000000000000..655c415b6e7f
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
@@ -0,0 +1,53 @@
1#!/bin/sh
2# description: event tracing - enable/disable with subsystem level files
3
4do_reset() {
5 echo > set_event
6 clear_trace
7}
8
9fail() { #msg
10 do_reset
11 echo $1
12 exit -1
13}
14
15if [ ! -f set_event -o ! -d events/sched ]; then
16 echo "event tracing is not supported"
17 exit_unsupported
18fi
19
20reset_tracer
21do_reset
22
23echo 'sched:*' > set_event
24usleep 1
25
26count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
27if [ $count -lt 3 ]; then
28 fail "at least fork, exec and exit events should be recorded"
29fi
30
31do_reset
32
33echo 1 > events/sched/enable
34usleep 1
35
36count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
37if [ $count -lt 3 ]; then
38 fail "at least fork, exec and exit events should be recorded"
39fi
40
41do_reset
42
43echo 0 > events/sched/enable
44usleep 1
45
46count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
47if [ $count -ne 0 ]; then
48 fail "any of scheduler events should not be recorded"
49fi
50
51do_reset
52
53exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
new file mode 100644
index 000000000000..480845774007
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
@@ -0,0 +1,47 @@
1#!/bin/sh
2# description: event tracing - enable/disable with top level files
3
4do_reset() {
5 echo > set_event
6 clear_trace
7}
8
9fail() { #msg
10 do_reset
11 echo $1
12 exit -1
13}
14
15if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
16 echo "event tracing is not supported"
17 exit_unsupported
18fi
19
20reset_tracer
21do_reset
22
23echo '*:*' > set_event
24count=`cat trace | grep -v ^# | wc -l`
25if [ $count -eq 0 ]; then
26 fail "none of events are recorded"
27fi
28
29do_reset
30
31echo 1 > events/enable
32count=`cat trace | grep -v ^# | wc -l`
33if [ $count -eq 0 ]; then
34 fail "none of events are recorded"
35fi
36
37do_reset
38
39echo 0 > events/enable
40count=`cat trace | grep -v ^# | wc -l`
41if [ $count -ne 0 ]; then
42 fail "any of events should not be recorded"
43fi
44
45do_reset
46
47exit 0