xref: /freebsd-src/contrib/netbsd-tests/dev/sysmon/t_swsensor.sh (revision 57718be8fa0bd5edc11ab9a72e68cc71982939a6)
1*57718be8SEnji Cooper# $NetBSD: t_swsensor.sh,v 1.7 2013/04/14 16:07:46 martin Exp $
2*57718be8SEnji Cooper
3*57718be8SEnji Cooperget_sensor_info() {
4*57718be8SEnji Cooper	rump.envstat -x | \
5*57718be8SEnji Cooper	sed -e "\;swsensor;,\;/array;p" -e "d"
6*57718be8SEnji Cooper}
7*57718be8SEnji Cooper
8*57718be8SEnji Cooperget_sensor_key() {
9*57718be8SEnji Cooper	get_sensor_info | grep -A1 $1 | grep integer | sed -e 's;<[/a-z]*>;;g'
10*57718be8SEnji Cooper}
11*57718be8SEnji Cooper
12*57718be8SEnji Cooperget_powerd_event_count() {
13*57718be8SEnji Cooper	grep "not running" powerd.log | wc -l
14*57718be8SEnji Cooper}
15*57718be8SEnji Cooper
16*57718be8SEnji Cooperget_rnd_bits_count() {
17*57718be8SEnji Cooper	env RUMPHIJACK=blanket=/dev/random:/dev/urandom	\
18*57718be8SEnji Cooper	    RUMP_SERVER=unix://t_swsensor_socket	\
19*57718be8SEnji Cooper	    LD_PRELOAD=/usr/lib/librumphijack.so	  rndctl -l | \
20*57718be8SEnji Cooper	grep "swsensor-sensor" | \
21*57718be8SEnji Cooper	awk '{print $2}'
22*57718be8SEnji Cooper}
23*57718be8SEnji Cooper
24*57718be8SEnji Coopercheck_powerd_event() {
25*57718be8SEnji Cooper	event=$(grep "not running" powerd.log | \
26*57718be8SEnji Cooper		sed -e "$1p" -e "d" )
27*57718be8SEnji Cooper	event=${event##*//}
28*57718be8SEnji Cooper	script=${event%% *}
29*57718be8SEnji Cooper	event=${event#* }
30*57718be8SEnji Cooper	device=${event%% *}
31*57718be8SEnji Cooper	event=${event#* }
32*57718be8SEnji Cooper	state=${event%% *}
33*57718be8SEnji Cooper	sensor=${event#* }
34*57718be8SEnji Cooper	sensor=${sensor% *}
35*57718be8SEnji Cooper
36*57718be8SEnji Cooper	if [ "${script}" != "sensor_indicator" ] ; then
37*57718be8SEnji Cooper		echo "Event uses wrong script: ${script}"
38*57718be8SEnji Cooper	elif [ "${device}" != "swsensor" ] ; then
39*57718be8SEnji Cooper		echo "Event uses wrong device: ${device}"
40*57718be8SEnji Cooper	elif [ "${sensor}" != "sensor" ] ; then
41*57718be8SEnji Cooper		echo "Event uses wrong sensor: ${sensor}"
42*57718be8SEnji Cooper	elif [ "${state}" != "$2" ] ; then
43*57718be8SEnji Cooper		echo "Event uses wrong state: ${state}"
44*57718be8SEnji Cooper	fi
45*57718be8SEnji Cooper}
46*57718be8SEnji Cooper
47*57718be8SEnji Cooper# Start the rump server, then load the swsensor module with the
48*57718be8SEnji Cooper# requested properties
49*57718be8SEnji Cooper
50*57718be8SEnji Cooperstart_rump() {
51*57718be8SEnji Cooper	rump_allserver -l rumpvfs -l rumpdev -l rumpdev_sysmon ${RUMP_SERVER}
52*57718be8SEnji Cooper	if [ $( get_sensor_info | wc -l ) -ne 0 ] ; then
53*57718be8SEnji Cooper		rump.modunload swsensor
54*57718be8SEnji Cooper		rump.modload -f $1 swsensor
55*57718be8SEnji Cooper	else
56*57718be8SEnji Cooper		rump.modload $1 swsensor
57*57718be8SEnji Cooper	fi
58*57718be8SEnji Cooper	return $?
59*57718be8SEnji Cooper}
60*57718be8SEnji Cooper
61*57718be8SEnji Coopercommon_head() {
62*57718be8SEnji Cooper	atf_set	descr		"$1"
63*57718be8SEnji Cooper	atf_set	timeout		60
64*57718be8SEnji Cooper	atf_set	require.progs	rump.powerd rump.envstat rump.modload	\
65*57718be8SEnji Cooper				rump.halt   rump.sysctl  rump_server	\
66*57718be8SEnji Cooper				sed         grep         awk		\
67*57718be8SEnji Cooper				rndctl      expr
68*57718be8SEnji Cooper}
69*57718be8SEnji Cooper
70*57718be8SEnji Coopercommon_cleanup() {
71*57718be8SEnji Cooper	rump.modunload swsensor
72*57718be8SEnji Cooper	rump.halt
73*57718be8SEnji Cooper}
74*57718be8SEnji Cooper
75*57718be8SEnji Coopercreate_envsys_conf_files() {
76*57718be8SEnji Cooper	cat << ENV0 > env0.conf
77*57718be8SEnji Cooper	swsensor {
78*57718be8SEnji Cooper		refresh-timeout = 2s;
79*57718be8SEnji Cooper	}
80*57718be8SEnji CooperENV0
81*57718be8SEnji Cooper	cat << ENV1 > env1.conf
82*57718be8SEnji Cooper	swsensor {
83*57718be8SEnji Cooper		sensor0 { critical-min = $(( $1 - $2 )); }
84*57718be8SEnji Cooper	}
85*57718be8SEnji CooperENV1
86*57718be8SEnji Cooper	cat << ENV2 > env2.conf
87*57718be8SEnji Cooper	swsensor {
88*57718be8SEnji Cooper		sensor0 { critical-min = $1; }
89*57718be8SEnji Cooper	}
90*57718be8SEnji CooperENV2
91*57718be8SEnji Cooper}
92*57718be8SEnji Cooper
93*57718be8SEnji Cooper# Test body common to all sensors
94*57718be8SEnji Cooper#	$1	sensor mode
95*57718be8SEnji Cooper#	$2	initial sensor value
96*57718be8SEnji Cooper#	$3	initial limit
97*57718be8SEnji Cooper#	$4	amount to lower limit
98*57718be8SEnji Cooper#	$5	difference from limit to trigger event
99*57718be8SEnji Cooper#	$6	sensor flags, for FHAS_ENTROPY and FMONNOTSUPP
100*57718be8SEnji Cooper
101*57718be8SEnji Coopercommon_body() {
102*57718be8SEnji Cooper	# Start the rump-server process and load the module
103*57718be8SEnji Cooper	modload_args="-i mode=$1 -i value=$2 -i limit=$3 ${6:+-i flags=$6}"
104*57718be8SEnji Cooper	start_rump "$modload_args"
105*57718be8SEnji Cooper
106*57718be8SEnji Cooper	# create configuration files for updates
107*57718be8SEnji Cooper	create_envsys_conf_files $3 $4
108*57718be8SEnji Cooper
109*57718be8SEnji Cooper	if [ $? -ne 0 ] ; then
110*57718be8SEnji Cooper		atf_skip "Cannot set-up rump environment"
111*57718be8SEnji Cooper	fi
112*57718be8SEnji Cooper
113*57718be8SEnji Cooper	# start powerd so we can detect sensor events
114*57718be8SEnji Cooper	rump.powerd -n -d > powerd.log 2>&1 &
115*57718be8SEnji Cooper	if [ -z "$(jobs)" ] ; then
116*57718be8SEnji Cooper		skip_events=1
117*57718be8SEnji Cooper		echo "Skipping event sub-tests - powerd did not start"
118*57718be8SEnji Cooper	else
119*57718be8SEnji Cooper		skip_events=0
120*57718be8SEnji Cooper		expected_event=1
121*57718be8SEnji Cooper	fi
122*57718be8SEnji Cooper
123*57718be8SEnji Cooper	# Step 0 - verify that sensor is registered
124*57718be8SEnji Cooper	get_sensor_info | grep -q swsensor ||
125*57718be8SEnji Cooper		atf_fail "0: Device swsensor not registered"
126*57718be8SEnji Cooper
127*57718be8SEnji Cooper	# Step 1 - update the refresh-timeout and verify
128*57718be8SEnji Cooper	# (use $(( ... )) since the timeout is displayed in hex!)
129*57718be8SEnji Cooper	rump.envstat -c env0.conf
130*57718be8SEnji Cooper	if [ $(( $( get_sensor_key refresh-timeout ) )) -ne 2 ] ; then
131*57718be8SEnji Cooper		atf_fail "1: Could not set refresh-timout to 2s"
132*57718be8SEnji Cooper	fi
133*57718be8SEnji Cooper
134*57718be8SEnji Cooper	# Step 2 - verify that we can read sensor's value
135*57718be8SEnji Cooper	if [ $1 -ne 0 -a $( get_sensor_key cur-value ) -ne $2 ] ; then
136*57718be8SEnji Cooper		atf_fail "2: Value not available"
137*57718be8SEnji Cooper	fi
138*57718be8SEnji Cooper
139*57718be8SEnji Cooper	# Step 3 - verify that changes in sensor value are seen
140*57718be8SEnji Cooper	rump.sysctl -w hw.swsensor.cur_value=$(( $2 + 1 ))
141*57718be8SEnji Cooper	if [ $( get_sensor_key cur-value ) -ne $(( $2 + 1 )) ] ; then
142*57718be8SEnji Cooper		atf_fail "3: Value not updated"
143*57718be8SEnji Cooper	fi
144*57718be8SEnji Cooper
145*57718be8SEnji Cooper	# Step 4 - if sensor provides hw limit, make sure we can read it
146*57718be8SEnji Cooper	if [ $1 -ne 0 ] ; then
147*57718be8SEnji Cooper		if [ $( get_sensor_key critical-min ) -ne $3 ] ; then
148*57718be8SEnji Cooper			atf_fail "4: Limit not set by device"
149*57718be8SEnji Cooper		fi
150*57718be8SEnji Cooper	fi
151*57718be8SEnji Cooper
152*57718be8SEnji Cooper	# Step 5 - if sensor provides hw limit, make sure it works
153*57718be8SEnji Cooper	if [ $1 -ne 0 -a ${skip_events} -eq 0 ] ; then
154*57718be8SEnji Cooper		rump.sysctl -w hw.swsensor.cur_value=$(( $3 - $5 ))
155*57718be8SEnji Cooper		sleep 5
156*57718be8SEnji Cooper		cnt=$(get_powerd_event_count)
157*57718be8SEnji Cooper		if [ ${cnt} -lt ${expected_event} ] ; then
158*57718be8SEnji Cooper			atf_fail "5: No event triggered"
159*57718be8SEnji Cooper		elif [ ${cnt} -gt ${expected_event} ] ; then
160*57718be8SEnji Cooper			atf_fail "5: Multiple events triggered"
161*57718be8SEnji Cooper		fi
162*57718be8SEnji Cooper		evt=$( check_powerd_event ${cnt} "critical-under")
163*57718be8SEnji Cooper		if [ -n "${evt}" ] ; then
164*57718be8SEnji Cooper			atf_fail "5: ${evt}"
165*57718be8SEnji Cooper		fi
166*57718be8SEnji Cooper		expected_event=$(( 1 + ${expected_event} ))
167*57718be8SEnji Cooper	fi
168*57718be8SEnji Cooper
169*57718be8SEnji Cooper	# Step 6 - verify that we return to normal state
170*57718be8SEnji Cooper	if [ $1 -ne 0 -a ${skip_events} -eq 0 ] ; then
171*57718be8SEnji Cooper		rump.sysctl -w hw.swsensor.cur_value=$(( $3 + $5 ))
172*57718be8SEnji Cooper		sleep 5
173*57718be8SEnji Cooper		cnt=$(get_powerd_event_count)
174*57718be8SEnji Cooper		if [ ${cnt} -lt ${expected_event} ] ; then
175*57718be8SEnji Cooper			atf_fail "6: No event triggered"
176*57718be8SEnji Cooper		elif [ ${cnt} -gt ${expected_event} ] ; then
177*57718be8SEnji Cooper			atf_fail "6: Multiple events triggered"
178*57718be8SEnji Cooper		fi
179*57718be8SEnji Cooper		evt=$( check_powerd_event ${cnt} "normal")
180*57718be8SEnji Cooper		if [ -n "${evt}" ] ; then
181*57718be8SEnji Cooper			atf_fail "6: ${evt}"
182*57718be8SEnji Cooper		fi
183*57718be8SEnji Cooper		expected_event=$(( 1 + ${expected_event} ))
184*57718be8SEnji Cooper	fi
185*57718be8SEnji Cooper
186*57718be8SEnji Cooper	# Step 7 - verify that we can set our own limit
187*57718be8SEnji Cooper
188*57718be8SEnji Cooper	# Steps 7 thru 12 are skipped if the sensor cannot be monitored
189*57718be8SEnji Cooper	if [ $( expr \( 0$6 / 2048 \) % 2 ) -ne 1 ] ; then
190*57718be8SEnji Cooper		rump.envstat -c env1.conf
191*57718be8SEnji Cooper		if [ $( get_sensor_key critical-min ) -ne $(( $3 - $4 )) ] ; then
192*57718be8SEnji Cooper			atf_fail "7: Limit not set by envstat -c"
193*57718be8SEnji Cooper		fi
194*57718be8SEnji Cooper
195*57718be8SEnji Cooper	# Step 8 - make sure user-set limit works
196*57718be8SEnji Cooper		if [ ${skip_events} -eq 0 ] ; then
197*57718be8SEnji Cooper			rump.sysctl -w hw.swsensor.cur_value=$(( $3 - $4 - $5 ))
198*57718be8SEnji Cooper			sleep 5
199*57718be8SEnji Cooper			cnt=$(get_powerd_event_count)
200*57718be8SEnji Cooper			if [ ${cnt} -lt ${expected_event} ] ; then
201*57718be8SEnji Cooper				atf_fail "8: No event triggered"
202*57718be8SEnji Cooper			elif [ ${cnt} -gt ${expected_event} ] ; then
203*57718be8SEnji Cooper				atf_fail "8: Multiple events triggered"
204*57718be8SEnji Cooper			fi
205*57718be8SEnji Cooper			evt=$( check_powerd_event ${cnt} "critical-under")
206*57718be8SEnji Cooper			if [ -n "${evt}" ] ; then
207*57718be8SEnji Cooper				atf_fail "8: ${evt}"
208*57718be8SEnji Cooper			fi
209*57718be8SEnji Cooper			expected_event=$(( 1 + ${expected_event} ))
210*57718be8SEnji Cooper		fi
211*57718be8SEnji Cooper
212*57718be8SEnji Cooper	# Step 9 - verify that we return to normal state
213*57718be8SEnji Cooper		if [ ${skip_events} -eq 0 ] ; then
214*57718be8SEnji Cooper			rump.sysctl -w hw.swsensor.cur_value=$(( $3 - $4 + $5 ))
215*57718be8SEnji Cooper			sleep 5
216*57718be8SEnji Cooper			cnt=$(get_powerd_event_count)
217*57718be8SEnji Cooper			if [ ${cnt} -lt ${expected_event} ] ; then
218*57718be8SEnji Cooper				atf_fail "9: No event triggered"
219*57718be8SEnji Cooper			elif [ ${cnt} -gt ${expected_event} ] ; then
220*57718be8SEnji Cooper				atf_fail "9: Multiple events triggered"
221*57718be8SEnji Cooper			fi
222*57718be8SEnji Cooper			evt=$( check_powerd_event ${cnt} "normal")
223*57718be8SEnji Cooper			if [ -n "${evt}" ] ; then
224*57718be8SEnji Cooper				atf_fail "9: ${evt}"
225*57718be8SEnji Cooper			fi
226*57718be8SEnji Cooper			expected_event=$(( 1 + ${expected_event} ))
227*57718be8SEnji Cooper		fi
228*57718be8SEnji Cooper
229*57718be8SEnji Cooper	# Step 10 - reset to defaults
230*57718be8SEnji Cooper		rump.envstat -S
231*57718be8SEnji Cooper		if [ $1 -eq 0 ] ; then
232*57718be8SEnji Cooper			get_sensor_info | grep -q critical-min &&
233*57718be8SEnji Cooper				atf_fail "10: Failed to clear a limit with envstat -S"
234*57718be8SEnji Cooper		else
235*57718be8SEnji Cooper			if [ $( get_sensor_key critical-min ) -ne $3 ] ; then
236*57718be8SEnji Cooper				atf_fail "10: Limit not reset to initial value"
237*57718be8SEnji Cooper			fi
238*57718be8SEnji Cooper		fi
239*57718be8SEnji Cooper
240*57718be8SEnji Cooper	# Step 11 - see if more events occur
241*57718be8SEnji Cooper		if [ ${skip_events} -eq 0 ] ; then
242*57718be8SEnji Cooper			rump.envstat -c env0.conf
243*57718be8SEnji Cooper			rump.sysctl -w hw.swsensor.cur_value=$(( $3 - $4 - $5 ))
244*57718be8SEnji Cooper			sleep 5
245*57718be8SEnji Cooper			cnt=$(get_powerd_event_count)
246*57718be8SEnji Cooper			if [ ${cnt} -ge ${expected_event} ] ; then
247*57718be8SEnji Cooper				if [ $1 -ne 2 ] ; then
248*57718be8SEnji Cooper					atf_fail "11b Event triggered after reset"
249*57718be8SEnji Cooper				fi
250*57718be8SEnji Cooper				evt=$( check_powerd_event ${cnt} "critical-under")
251*57718be8SEnji Cooper				if [ -n "${evt}" ] ; then
252*57718be8SEnji Cooper					atf_fail "11a: ${evt}"
253*57718be8SEnji Cooper				fi
254*57718be8SEnji Cooper			fi
255*57718be8SEnji Cooper		fi
256*57718be8SEnji Cooper
257*57718be8SEnji Cooper	# Step 12 - make sure we can set new limits once more
258*57718be8SEnji Cooper		rump.envstat -c env2.conf
259*57718be8SEnji Cooper		if [ $( get_sensor_key critical-min ) -ne $3 ] ; then
260*57718be8SEnji Cooper			atf_fail "12a: Limit not reset to same value"
261*57718be8SEnji Cooper		fi
262*57718be8SEnji Cooper		rump.envstat -c env1.conf
263*57718be8SEnji Cooper		if [ $( get_sensor_key critical-min ) -ne $(( $3 - $4 )) ] ; then
264*57718be8SEnji Cooper			atf_fail "12b: Limit not reset to new value"
265*57718be8SEnji Cooper		fi
266*57718be8SEnji Cooper	fi
267*57718be8SEnji Cooper
268*57718be8SEnji Cooper	# Step 13 - confirm registration (or lack thereof) with rndctl
269*57718be8SEnji Cooper	rnd_bits=$( get_rnd_bits_count )
270*57718be8SEnji Cooper	if [ $( expr \( 0$6 / 8192 \) % 2 ) -eq 1 ] ; then
271*57718be8SEnji Cooper		if [ -z "$rnd_bits" ] ; then
272*57718be8SEnji Cooper			atf_fail "13a: Not registered with rndctl"
273*57718be8SEnji Cooper		fi
274*57718be8SEnji Cooper	else
275*57718be8SEnji Cooper		if [ -n "$rnd_bits" ] ; then
276*57718be8SEnji Cooper			atf_fail "13b: Wrongly registered with rndctl"
277*57718be8SEnji Cooper		fi
278*57718be8SEnji Cooper	fi
279*57718be8SEnji Cooper
280*57718be8SEnji Cooper	# Steps 14 and 15 are only if sensor is providing entropy
281*57718be8SEnji Cooper	if [ $( expr \( 0$6 / 8192 \) % 2 ) -ne 1 ] ; then
282*57718be8SEnji Cooper		return
283*57718be8SEnji Cooper	fi
284*57718be8SEnji Cooper
285*57718be8SEnji Cooper	# Step 14 - make sure entropy collected when device is being polled
286*57718be8SEnji Cooper	rump.envstat -c env0.conf
287*57718be8SEnji Cooper	rump.sysctl -w hw.swsensor.cur_value=$3
288*57718be8SEnji Cooper	sleep 5
289*57718be8SEnji Cooper	rump.sysctl -w hw.swsensor.cur_value=$(( $3 + $4 ))
290*57718be8SEnji Cooper	sleep 5
291*57718be8SEnji Cooper	new_rnd_bits=$( get_rnd_bits_count )
292*57718be8SEnji Cooper	if [ $new_rnd_bits -le $rnd_bits ] ; then
293*57718be8SEnji Cooper		atf_expect_fail "PR kern/47661"
294*57718be8SEnji Cooper		atf_fail "14a: entropy bits did not increase after polling"
295*57718be8SEnji Cooper	fi
296*57718be8SEnji Cooper	rnd_bits=$new_rnd_bits
297*57718be8SEnji Cooper	sleep 5
298*57718be8SEnji Cooper	new_rnd_bits=$( get_rnd_bits_count )
299*57718be8SEnji Cooper	if [ $new_rnd_bits -gt $rnd_bits ] ; then
300*57718be8SEnji Cooper		atf_expect_fail "PR kern/47661"
301*57718be8SEnji Cooper		atf_fail "14b: entropy bits increased after poll with no value change"
302*57718be8SEnji Cooper	fi
303*57718be8SEnji Cooper
304*57718be8SEnji Cooper	# Step 15 - make sure entropy collected when device is interrogated
305*57718be8SEnji Cooper	#
306*57718be8SEnji Cooper	rump.envstat -c env0.conf
307*57718be8SEnji Cooper	rump.sysctl -w hw.swsensor.cur_value=$3
308*57718be8SEnji Cooper	get_sensor_key cur-value
309*57718be8SEnji Cooper	rnd_bits=$( get_rnd_bits_count )
310*57718be8SEnji Cooper	rump.sysctl -w hw.swsensor.cur_value=$(( $3 + $4 ))
311*57718be8SEnji Cooper	get_sensor_key cur-value
312*57718be8SEnji Cooper	new_rnd_bits=$( get_rnd_bits_count )
313*57718be8SEnji Cooper	if [ $new_rnd_bits -le $rnd_bits ] ; then
314*57718be8SEnji Cooper		atf_expect_fail "PR kern/47661"
315*57718be8SEnji Cooper		atf_fail "15a: entropy bits did not increase after interrogation"
316*57718be8SEnji Cooper	fi
317*57718be8SEnji Cooper	rnd_bits=$new_rnd_bits
318*57718be8SEnji Cooper	get_sensor_key cur-value
319*57718be8SEnji Cooper	new_rnd_bits=$( get_rnd_bits_count )
320*57718be8SEnji Cooper	if [ $new_rnd_bits -gt $rnd_bits ] ; then
321*57718be8SEnji Cooper		atf_expect_fail "PR kern/47661"
322*57718be8SEnji Cooper		atf_fail "15b: entropy bits increased after interrogation with no value change"
323*57718be8SEnji Cooper	fi
324*57718be8SEnji Cooper}
325*57718be8SEnji Cooper
326*57718be8SEnji Cooperatf_test_case simple_sensor cleanup
327*57718be8SEnji Coopersimple_sensor_head() {
328*57718be8SEnji Cooper	common_head "Test a simple sensor"
329*57718be8SEnji Cooper}
330*57718be8SEnji Cooper
331*57718be8SEnji Coopersimple_sensor_body() {
332*57718be8SEnji Cooper	common_body 0 50 30 10 1
333*57718be8SEnji Cooper}
334*57718be8SEnji Cooper
335*57718be8SEnji Coopersimple_sensor_cleanup() {
336*57718be8SEnji Cooper	common_cleanup
337*57718be8SEnji Cooper}
338*57718be8SEnji Cooper
339*57718be8SEnji Cooperatf_test_case limit_sensor cleanup
340*57718be8SEnji Cooperlimit_sensor_head() {
341*57718be8SEnji Cooper	common_head "Test a sensor with internal limit"
342*57718be8SEnji Cooper}
343*57718be8SEnji Cooper
344*57718be8SEnji Cooperlimit_sensor_body() {
345*57718be8SEnji Cooper	common_body 1 45 25 8 2
346*57718be8SEnji Cooper}
347*57718be8SEnji Cooper
348*57718be8SEnji Cooperlimit_sensor_cleanup() {
349*57718be8SEnji Cooper	common_cleanup
350*57718be8SEnji Cooper}
351*57718be8SEnji Cooper
352*57718be8SEnji Cooperatf_test_case alarm_sensor cleanup
353*57718be8SEnji Cooperalarm_sensor_head() {
354*57718be8SEnji Cooper	common_head "Test a sensor with internal checking"
355*57718be8SEnji Cooper}
356*57718be8SEnji Cooper
357*57718be8SEnji Cooperalarm_sensor_body() {
358*57718be8SEnji Cooper	common_body 2 40 20 6 3
359*57718be8SEnji Cooper}
360*57718be8SEnji Cooper
361*57718be8SEnji Cooperalarm_sensor_cleanup() {
362*57718be8SEnji Cooper	common_cleanup
363*57718be8SEnji Cooper}
364*57718be8SEnji Cooper
365*57718be8SEnji Cooperatf_test_case entropy_polled_sensor cleanup
366*57718be8SEnji Cooperentropy_polled_sensor_head() {
367*57718be8SEnji Cooper	common_head "Test a simple sensor that provides entropy"
368*57718be8SEnji Cooper}
369*57718be8SEnji Cooper
370*57718be8SEnji Cooperentropy_polled_sensor_body() {
371*57718be8SEnji Cooper	common_body 0 50 30 10 1 8192
372*57718be8SEnji Cooper}
373*57718be8SEnji Cooper
374*57718be8SEnji Cooperentropy_polled_sensor_cleanup() {
375*57718be8SEnji Cooper	common_cleanup
376*57718be8SEnji Cooper}
377*57718be8SEnji Cooper
378*57718be8SEnji Cooperatf_test_case entropy_interrupt_sensor cleanup
379*57718be8SEnji Cooperentropy_interrupt_sensor_head() {
380*57718be8SEnji Cooper	common_head "Test a sensor that provides entropy without polling"
381*57718be8SEnji Cooper}
382*57718be8SEnji Cooper
383*57718be8SEnji Cooperentropy_interrupt_sensor_body() {
384*57718be8SEnji Cooper	common_body 0 50 30 10 1 10240
385*57718be8SEnji Cooper}
386*57718be8SEnji Cooper
387*57718be8SEnji Cooperentropy_interrupt_sensor_cleanup() {
388*57718be8SEnji Cooper	common_cleanup
389*57718be8SEnji Cooper}
390*57718be8SEnji Cooper
391*57718be8SEnji Cooperatf_init_test_cases() {
392*57718be8SEnji Cooper	RUMP_SERVER="unix://t_swsensor_socket" ; export RUMP_SERVER
393*57718be8SEnji Cooper	atf_add_test_case simple_sensor
394*57718be8SEnji Cooper	atf_add_test_case limit_sensor
395*57718be8SEnji Cooper	atf_add_test_case alarm_sensor
396*57718be8SEnji Cooper	atf_add_test_case entropy_polled_sensor
397*57718be8SEnji Cooper	atf_add_test_case entropy_interrupt_sensor
398*57718be8SEnji Cooper}
399