GNU Linux-libre 4.14.262-gnu1
[releases.git] / tools / testing / selftests / ftrace / test.d / trigger / trigger-snapshot.tc
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0
3 # description: event trigger - test snapshot-trigger
4
5 do_reset() {
6     reset_trigger
7     echo > set_event
8     clear_trace
9 }
10
11 fail() { #msg
12     do_reset
13     echo $1
14     exit $FAIL
15 }
16
17 if [ ! -f set_event -o ! -d events/sched ]; then
18     echo "event tracing is not supported"
19     exit_unsupported
20 fi
21
22 if [ ! -f events/sched/sched_process_fork/trigger ]; then
23     echo "event trigger is not supported"
24     exit_unsupported
25 fi
26
27 if [ ! -f snapshot ]; then
28     echo "snapshot is not supported"
29     exit_unsupported
30 fi
31
32 reset_tracer
33 do_reset
34
35 FEATURE=`grep snapshot events/sched/sched_process_fork/trigger`
36 if [ -z "$FEATURE" ]; then
37     echo "snapshot trigger is not supported"
38     exit_unsupported
39 fi
40
41 echo "Test snapshot tigger"
42 echo 0 > snapshot
43 echo 1 > events/sched/sched_process_fork/enable
44 ( echo "forked")
45 echo 'snapshot:1' > events/sched/sched_process_fork/trigger
46 ( echo "forked")
47 grep sched_process_fork snapshot > /dev/null || \
48     fail "snapshot trigger on sched_process_fork did not work"
49
50 reset_trigger
51 echo 0 > snapshot
52 echo 0 > events/sched/sched_process_fork/enable
53
54 echo "Test snapshot semantic errors"
55
56 ! echo "snapshot+1" > events/sched/sched_process_fork/trigger
57 echo "snapshot" > events/sched/sched_process_fork/trigger
58 ! echo "snapshot" > events/sched/sched_process_fork/trigger
59
60 do_reset
61
62 exit 0