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