GNU Linux-libre 4.14.332-gnu1
[releases.git] / tools / testing / selftests / ftrace / test.d / event / toplevel-enable.tc
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0
3 # description: event tracing - enable/disable with top level files
4
5 do_reset() {
6     echo > set_event
7     clear_trace
8 }
9
10 fail() { #msg
11     do_reset
12     echo $1
13     exit $FAIL
14 }
15
16 yield() {
17     ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
18 }
19
20 if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
21     echo "event tracing is not supported"
22     exit_unsupported
23 fi
24
25 reset_tracer
26 do_reset
27
28 echo '*:*' > set_event
29
30 yield
31
32 echo 0 > tracing_on
33
34 count=`head -n 128 trace | grep -v ^# | wc -l`
35 if [ $count -eq 0 ]; then
36     fail "none of events are recorded"
37 fi
38
39 do_reset
40
41 echo 1 > events/enable
42 echo 1 > tracing_on
43
44 yield
45
46 echo 0 > tracing_on
47 count=`head -n 128 trace | grep -v ^# | wc -l`
48 if [ $count -eq 0 ]; then
49     fail "none of events are recorded"
50 fi
51
52 do_reset
53
54 echo 0 > events/enable
55
56 yield
57
58 count=`cat trace | grep -v ^# | wc -l`
59 if [ $count -ne 0 ]; then
60     fail "any of events should not be recorded"
61 fi
62
63 do_reset
64
65 exit 0