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