Linux-libre 4.9.18-gnu
[librecmc/linux-libre.git] / tools / testing / selftests / ftrace / test.d / trigger / trigger-stacktrace.tc
1 #!/bin/sh
2 # description: event trigger - test stacktrace-trigger
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 FEATURE=`grep stacktrace events/sched/sched_process_fork/trigger`
30 if [ -z "$FEATURE" ]; then
31     echo "stacktrace trigger is not supported"
32     exit_unsupported
33 fi
34
35 echo "Test stacktrace tigger"
36 echo 0 > trace
37 echo 0 > options/stacktrace
38 echo 'stacktrace' > events/sched/sched_process_fork/trigger
39 ( echo "forked")
40 grep "<stack trace>" trace > /dev/null || \
41     fail "stacktrace trigger on sched_process_fork did not work"
42
43 reset_trigger
44
45 echo "Test stacktrace semantic errors"
46
47 ! echo "stacktrace:foo" > events/sched/sched_process_fork/trigger
48 echo "stacktrace" > events/sched/sched_process_fork/trigger
49 ! echo "stacktrace" > events/sched/sched_process_fork/trigger
50
51 do_reset
52
53 exit 0