blob: 175243cd9ab7e87f20ebce552b4fe153f858cb88 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: event tracing - enable/disable with module event
# requires: set_event "Can enable module events via: :mod:":README
# flags: instance
rmmod trace-events-sample ||:
if ! modprobe trace-events-sample ; then
echo "No trace-events sample module - please make CONFIG_SAMPLE_TRACE_EVENTS=m"
exit_unresolved;
fi
trap "rmmod trace-events-sample" EXIT
# Set events for the module
echo ":mod:trace-events-sample" > set_event
test_all_enabled() {
# Check if more than one is enabled
grep -q sample-trace:foo_bar set_event
grep -q sample-trace:foo_bar_with_cond set_event
grep -q sample-trace:foo_bar_with_fn set_event
# All of them should be enabled. Check via the enable file
val=`cat events/sample-trace/enable`
if [ $val -ne 1 ]; then
exit_fail
fi
}
clear_events() {
echo > set_event
val=`cat events/enable`
if [ "$val" != "0" ]; then
exit_fail
fi
count=`cat set_event | wc -l`
if [ $count -ne 0 ]; then
exit_fail
fi
}
test_all_enabled
echo clear all events
echo 0 > events/enable
echo Confirm the events are disabled
val=`cat events/sample-trace/enable`
if [ $val -ne 0 ]; then
exit_fail
fi
echo And the set_event file is empty
cnt=`wc -l set_event`
if [ $cnt -ne 0 ]; then
exit_fail
fi
echo now enable all events
echo 1 > events/enable
echo Confirm the events are enabled again
val=`cat events/sample-trace/enable`
if [ $val -ne 1 ]; then
exit_fail
fi
echo disable just the module events
echo '!:mod:trace-events-sample' >> set_event
echo Should have mix of events enabled
val=`cat events/enable`
if [ "$val" != "X" ]; then
exit_fail
fi
echo Confirm the module events are disabled
val=`cat events/sample-trace/enable`
if [ $val -ne 0 ]; then
exit_fail
fi
echo 0 > events/enable
echo now enable the system events
echo 'sample-trace:mod:trace-events-sample' > set_event
test_all_enabled
echo clear all events
echo 0 > events/enable
echo Confirm the events are disabled
val=`cat events/sample-trace/enable`
if [ $val -ne 0 ]; then
exit_fail
fi
echo Test enabling foo_bar only
echo 'foo_bar:mod:trace-events-sample' > set_event
grep -q sample-trace:foo_bar set_event
echo make sure nothing is found besides foo_bar
if grep -q -v sample-trace:foo_bar set_event ; then
exit_fail
fi
echo Append another using the system and event name
echo 'sample-trace:foo_bar_with_cond:mod:trace-events-sample' >> set_event
grep -q sample-trace:foo_bar set_event
grep -q sample-trace:foo_bar_with_cond set_event
count=`cat set_event | wc -l`
if [ $count -ne 2 ]; then
exit_fail
fi
clear_events
rmmod trace-events-sample
echo ':mod:trace-events-sample' > set_event
echo make sure that the module shows up, and '-' is converted to '_'
grep -q '\*:\*:mod:trace_events_sample' set_event
modprobe trace-events-sample
test_all_enabled
clear_events
rmmod trace-events-sample
echo Enable just the system events
echo 'sample-trace:mod:trace-events-sample' > set_event
grep -q 'sample-trace:mod:trace_events_sample' set_event
modprobe trace-events-sample
test_all_enabled
clear_events
rmmod trace-events-sample
echo Enable event with just event name
echo 'foo_bar:mod:trace-events-sample' > set_event
grep -q 'foo_bar:mod:trace_events_sample' set_event
echo Enable another event with both system and event name
echo 'sample-trace:foo_bar_with_cond:mod:trace-events-sample' >> set_event
grep -q 'sample-trace:foo_bar_with_cond:mod:trace_events_sample' set_event
echo Make sure the other event was still there
grep -q 'foo_bar:mod:trace_events_sample' set_event
modprobe trace-events-sample
echo There should be no :mod: cached events
if grep -q ':mod:' set_event; then
exit_fail
fi
echo two events should be enabled
count=`cat set_event | wc -l`
if [ $count -ne 2 ]; then
exit_fail
fi
echo only two events should be enabled
val=`cat events/sample-trace/enable`
if [ "$val" != "X" ]; then
exit_fail
fi
val=`cat events/sample-trace/foo_bar/enable`
if [ "$val" != "1" ]; then
exit_fail
fi
val=`cat events/sample-trace/foo_bar_with_cond/enable`
if [ "$val" != "1" ]; then
exit_fail
fi
clear_trace
|