Linux 4.0
[cascardo/linux.git] / tools / testing / selftests / ftrace / test.d / event / subsystem-enable.tc
1 #!/bin/sh
2 # description: event tracing - enable/disable with subsystem level files
3
4 do_reset() {
5     echo > set_event
6     clear_trace
7 }
8
9 fail() { #msg
10     do_reset
11     echo $1
12     exit -1
13 }
14
15 if [ ! -f set_event -o ! -d events/sched ]; then
16     echo "event tracing is not supported"
17     exit_unsupported
18 fi
19
20 reset_tracer
21 do_reset
22
23 echo 'sched:*' > set_event
24 usleep 1
25
26 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
27 if [ $count -lt 3 ]; then
28     fail "at least fork, exec and exit events should be recorded"
29 fi
30
31 do_reset
32
33 echo 1 > events/sched/enable
34 usleep 1
35
36 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
37 if [ $count -lt 3 ]; then
38     fail "at least fork, exec and exit events should be recorded"
39 fi
40
41 do_reset
42
43 echo 0 > events/sched/enable
44 usleep 1
45
46 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
47 if [ $count -ne 0 ]; then
48     fail "any of scheduler events should not be recorded"
49 fi
50
51 do_reset
52
53 exit 0