48849a8d577f7f2b475d0c9d0bfad2029d2a9d1b
[sfrench/cifs-2.6.git] / tools / testing / selftests / ftrace / test.d / trigger / trigger-filter.tc
1 #!/bin/sh
2 # description: event trigger - test trigger filter
3 # flags: instance
4
5 do_reset() {
6     reset_trigger
7     echo > set_event
8     clear_trace
9 }
10
11 fail() { #msg
12     do_reset
13     echo $1
14     exit $FAIL
15 }
16
17 if [ ! -f set_event -o ! -d events/sched ]; then
18     echo "event tracing is not supported"
19     exit_unsupported
20 fi
21
22 if [ ! -f events/sched/sched_process_fork/trigger ]; then
23     echo "event trigger is not supported"
24     exit_unsupported
25 fi
26
27 reset_tracer
28 do_reset
29
30 echo "Test trigger filter"
31 echo 1 > tracing_on
32 echo 'traceoff if child_pid == 0' > events/sched/sched_process_fork/trigger
33 ( echo "forked")
34 if [ `cat tracing_on` -ne 1 ]; then
35     fail "traceoff trigger on sched_process_fork did not work"
36 fi
37
38 reset_trigger
39
40 echo "Test semantic error for trigger filter"
41 ! echo 'traceoff if a' > events/sched/sched_process_fork/trigger
42 ! echo 'traceoff if common_pid=0' > events/sched/sched_process_fork/trigger
43 ! echo 'traceoff if common_pid==b' > events/sched/sched_process_fork/trigger
44 echo 'traceoff if common_pid == 0' > events/sched/sched_process_fork/trigger
45 echo '!traceoff' > events/sched/sched_process_fork/trigger
46 ! echo 'traceoff if common_pid == child_pid' > events/sched/sched_process_fork/trigger
47 echo 'traceoff if common_pid <= 0' > events/sched/sched_process_fork/trigger
48 echo '!traceoff' > events/sched/sched_process_fork/trigger
49 echo 'traceoff if common_pid >= 0' > events/sched/sched_process_fork/trigger
50 echo '!traceoff' > events/sched/sched_process_fork/trigger
51 echo 'traceoff if parent_pid >= 0 && child_pid >= 0' > events/sched/sched_process_fork/trigger
52 echo '!traceoff' > events/sched/sched_process_fork/trigger
53 echo 'traceoff if parent_pid >= 0 || child_pid >= 0' > events/sched/sched_process_fork/trigger
54 echo '!traceoff' > events/sched/sched_process_fork/trigger
55
56
57
58 do_reset
59
60 exit 0