1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3# description: event trigger - test trigger filter
4# requires: set_event events/sched/sched_process_fork/trigger
5# flags: instance
6
7fail() { #msg
8    echo $1
9    exit_fail
10}
11
12echo "Test trigger filter"
13echo 1 > tracing_on
14echo 'traceoff if child_pid == 0' > events/sched/sched_process_fork/trigger
15( echo "forked")
16if [ `cat tracing_on` -ne 1 ]; then
17    fail "traceoff trigger on sched_process_fork did not work"
18fi
19
20reset_trigger
21
22echo "Test semantic error for trigger filter"
23! echo 'traceoff if a' > events/sched/sched_process_fork/trigger
24! echo 'traceoff if common_pid=0' > events/sched/sched_process_fork/trigger
25! echo 'traceoff if common_pid==b' > events/sched/sched_process_fork/trigger
26echo 'traceoff if common_pid == 0' > events/sched/sched_process_fork/trigger
27echo '!traceoff' > events/sched/sched_process_fork/trigger
28! echo 'traceoff if common_pid == child_pid' > events/sched/sched_process_fork/trigger
29echo 'traceoff if common_pid <= 0' > events/sched/sched_process_fork/trigger
30echo '!traceoff' > events/sched/sched_process_fork/trigger
31echo 'traceoff if common_pid >= 0' > events/sched/sched_process_fork/trigger
32echo '!traceoff' > events/sched/sched_process_fork/trigger
33echo 'traceoff if parent_pid >= 0 && child_pid >= 0' > events/sched/sched_process_fork/trigger
34echo '!traceoff' > events/sched/sched_process_fork/trigger
35echo 'traceoff if parent_pid >= 0 || child_pid >= 0' > events/sched/sched_process_fork/trigger
36echo '!traceoff' > events/sched/sched_process_fork/trigger
37
38exit 0
39