GNU Linux-libre 4.19.211-gnu1
[releases.git] / tools / testing / selftests / ftrace / test.d / trigger / trigger-trace-marker-snapshot.tc
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0
3 # description: trace_marker trigger - test snapshot trigger
4 # flags: instance
5
6 do_reset() {
7     reset_trigger
8     echo > set_event
9     echo 0 > snapshot
10     clear_trace
11 }
12
13 fail() { #msg
14     do_reset
15     echo $1
16     exit_fail
17 }
18
19 if [ ! -f set_event ]; then
20     echo "event tracing is not supported"
21     exit_unsupported
22 fi
23
24 if [ ! -f snapshot ]; then
25     echo "snapshot is not supported"
26     exit_unsupported
27 fi
28
29 if [ ! -d events/ftrace/print ]; then
30     echo "event trace_marker is not supported"
31     exit_unsupported
32 fi
33
34 if [ ! -f events/ftrace/print/trigger ]; then
35     echo "event trigger is not supported"
36     exit_unsupported
37 fi
38
39 test_trace() {
40     file=$1
41     x=$2
42
43     cat $file | while read line; do
44         comment=`echo $line | sed -e 's/^#//'`
45         if [ "$line" != "$comment" ]; then
46             continue
47         fi
48         echo "testing $line for >$x<"
49         match=`echo $line | sed -e "s/>$x<//"`
50         if [ "$line" == "$match" ]; then
51             fail "$line does not have >$x< in it"
52         fi
53         let x=$x+2
54     done
55 }
56
57 do_reset
58
59 echo "Test snapshot trace_marker tigger"
60
61 echo 'snapshot' > events/ftrace/print/trigger
62
63 # make sure the snapshot is allocated
64
65 grep -q 'Snapshot is allocated' snapshot
66
67 for i in `seq 1 10` ; do echo "hello >$i<" > trace_marker; done
68
69 test_trace trace 1
70 test_trace snapshot 2
71
72 do_reset
73
74 exit 0