File Index
Files and directories
Sign in
FILE

event-mod.tc

File preview with syntax highlighting.

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