xref: /linux/tools/testing/selftests/verification/test.d/functions (revision 0c0cd931a037638ec49ae57c6100fcbb6a729bae)
1*0c0cd931SGabriele Monacocheck_requires() { # Check required files, monitors and reactors
2*0c0cd931SGabriele Monaco	for i in "$@" ; do
3*0c0cd931SGabriele Monaco		p=${i%:program}
4*0c0cd931SGabriele Monaco		m=${i%:monitor}
5*0c0cd931SGabriele Monaco		r=${i%:reactor}
6*0c0cd931SGabriele Monaco		if [ $p != $i ]; then
7*0c0cd931SGabriele Monaco			if ! which $p ; then
8*0c0cd931SGabriele Monaco				echo "Required program $p is not found."
9*0c0cd931SGabriele Monaco				exit_unresolved
10*0c0cd931SGabriele Monaco			fi
11*0c0cd931SGabriele Monaco		elif [ $m != $i ]; then
12*0c0cd931SGabriele Monaco			if ! grep -wq $m available_monitors ; then
13*0c0cd931SGabriele Monaco				echo "Required monitor $m is not configured."
14*0c0cd931SGabriele Monaco				exit_unsupported
15*0c0cd931SGabriele Monaco			fi
16*0c0cd931SGabriele Monaco		elif [ $r != $i ]; then
17*0c0cd931SGabriele Monaco			if ! grep -wq $r available_reactors ; then
18*0c0cd931SGabriele Monaco				echo "Required reactor $r is not configured."
19*0c0cd931SGabriele Monaco				exit_unsupported
20*0c0cd931SGabriele Monaco			fi
21*0c0cd931SGabriele Monaco		elif [ ! -e $i ]; then
22*0c0cd931SGabriele Monaco			echo "Required feature interface $i doesn't exist."
23*0c0cd931SGabriele Monaco			exit_unsupported
24*0c0cd931SGabriele Monaco		fi
25*0c0cd931SGabriele Monaco	done
26*0c0cd931SGabriele Monaco}
27*0c0cd931SGabriele Monaco
28*0c0cd931SGabriele Monacoinitialize_system() { # Reset RV to initial-state
29*0c0cd931SGabriele Monaco	echo > enabled_monitors
30*0c0cd931SGabriele Monaco	for m in monitors/*; do
31*0c0cd931SGabriele Monaco		echo nop > $m/reactors || true
32*0c0cd931SGabriele Monaco	done
33*0c0cd931SGabriele Monaco	echo 1 > monitoring_on
34*0c0cd931SGabriele Monaco	echo 1 > reacting_on || true
35*0c0cd931SGabriele Monaco}
36*0c0cd931SGabriele Monaco
37*0c0cd931SGabriele Monacofinish_system() {
38*0c0cd931SGabriele Monaco	initialize_system
39*0c0cd931SGabriele Monaco}
40