Linux-libre 5.4.39-gnu
[librecmc/linux-libre.git] / tools / testing / selftests / ftrace / test.d / trigger / trigger-stacktrace.tc
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0
3 # description: event trigger - test stacktrace-trigger
4
5 fail() { #msg
6     echo $1
7     exit_fail
8 }
9
10 if [ ! -f set_event -o ! -d events/sched ]; then
11     echo "event tracing is not supported"
12     exit_unsupported
13 fi
14
15 if [ ! -f events/sched/sched_process_fork/trigger ]; then
16     echo "event trigger is not supported"
17     exit_unsupported
18 fi
19
20 FEATURE=`grep stacktrace events/sched/sched_process_fork/trigger`
21 if [ -z "$FEATURE" ]; then
22     echo "stacktrace trigger is not supported"
23     exit_unsupported
24 fi
25
26 echo "Test stacktrace tigger"
27 echo 0 > trace
28 echo 0 > options/stacktrace
29 echo 'stacktrace' > events/sched/sched_process_fork/trigger
30 ( echo "forked")
31 grep "<stack trace>" trace > /dev/null || \
32     fail "stacktrace trigger on sched_process_fork did not work"
33
34 reset_trigger
35
36 echo "Test stacktrace semantic errors"
37
38 ! echo "stacktrace:foo" > events/sched/sched_process_fork/trigger
39 echo "stacktrace" > events/sched/sched_process_fork/trigger
40 ! echo "stacktrace" > events/sched/sched_process_fork/trigger
41
42 exit 0