1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3# description: trace_marker trigger - test snapshot trigger
4# flags: instance
5
6do_reset() {
7    reset_trigger
8    echo > set_event
9    echo 0 > snapshot
10    clear_trace
11}
12
13fail() { #msg
14    do_reset
15    echo $1
16    exit_fail
17}
18
19if [ ! -f set_event ]; then
20    echo "event tracing is not supported"
21    exit_unsupported
22fi
23
24if [ ! -f snapshot ]; then
25    echo "snapshot is not supported"
26    exit_unsupported
27fi
28
29if [ ! -d events/ftrace/print ]; then
30    echo "event trace_marker is not supported"
31    exit_unsupported
32fi
33
34if [ ! -f events/ftrace/print/trigger ]; then
35    echo "event trigger is not supported"
36    exit_unsupported
37fi
38
39test_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
57do_reset
58
59echo "Test snapshot trace_marker tigger"
60
61echo 'snapshot' > events/ftrace/print/trigger
62
63# make sure the snapshot is allocated
64
65grep -q 'Snapshot is allocated' snapshot
66
67for i in `seq 1 10` ; do echo "hello >$i<" > trace_marker; done
68
69test_trace trace 1
70test_trace snapshot 2
71
72do_reset
73
74exit 0
75