Home | History | Annotate | Line # | Download | only in mixerctl
t_mixerctl.sh revision 1.5
      1  1.5       kre # $NetBSD: t_mixerctl.sh,v 1.5 2017/04/20 00:17:11 kre Exp $
      2  1.1  christos 
      3  1.1  christos atf_test_case noargs_usage
      4  1.1  christos noargs_usage_head() {
      5  1.1  christos 	atf_set "descr" "Ensure mixerctl(1) with no args prints a usage message"
      6  1.1  christos }
      7  1.1  christos noargs_usage_body() {
      8  1.1  christos 	atf_check -s exit:0 -o not-empty -e ignore \
      9  1.1  christos 		mixerctl
     10  1.1  christos }
     11  1.1  christos 
     12  1.1  christos atf_test_case showvalue
     13  1.1  christos showvalue_head() {
     14  1.1  christos 	atf_set "descr" "Ensure mixerctl(1) can print the value for all variables"
     15  1.1  christos }
     16  1.1  christos showvalue_body() {
     17  1.5       kre 	cat /dev/pad0 > /dev/null 2>&1 &
     18  1.5       kre 	padpid=$!
     19  1.5       kre 
     20  1.4       kre 	(</dev/mixer) >/dev/null 2>&1 ||
     21  1.4       kre 	    atf_skip "no audio mixer available in kernel"
     22  1.4       kre 
     23  1.1  christos 	for var in $(mixerctl -a | awk -F= '{print $1}'); do
     24  1.1  christos 		atf_check -s exit:0 -e ignore -o match:"^${var}=" \
     25  1.1  christos 			mixerctl ${var}
     26  1.1  christos 	done
     27  1.5       kre 
     28  1.5       kre 	kill -HUP ${padpid} 2>/dev/null		# may have exited already
     29  1.1  christos }
     30  1.1  christos 
     31  1.1  christos atf_test_case nflag
     32  1.1  christos nflag_head() {
     33  1.1  christos 	atf_set "descr" "Ensure 'mixerctl -n' actually suppresses some output"
     34  1.1  christos }
     35  1.1  christos nflag_body() {
     36  1.5       kre 	cat /dev/pad0 > /dev/null 2>&1 &
     37  1.5       kre 	padpid=$!
     38  1.5       kre 
     39  1.4       kre 	(</dev/mixer) >/dev/null 2>&1 ||
     40  1.4       kre 	    atf_skip "no audio mixer available in kernel"
     41  1.4       kre 
     42  1.2       kre 	varname="$(mixerctl -a | sed -e 's/=.*//' -e q)"
     43  1.1  christos 
     44  1.1  christos 	atf_check -s exit:0 -o match:"${varname}" -e ignore \
     45  1.1  christos 		mixerctl ${varname}
     46  1.1  christos 
     47  1.1  christos 	atf_check -s exit:0 -o not-match:"${varname}" -e ignore \
     48  1.1  christos 		mixerctl -n ${varname}
     49  1.5       kre 
     50  1.5       kre 	kill -HUP ${padpid} 2>/dev/null
     51  1.1  christos }
     52  1.1  christos 
     53  1.1  christos atf_test_case nonexistant_device
     54  1.1  christos nonexistant_device_head() {
     55  1.1  christos 	atf_set "descr" "Ensure mixerctl(1) complains if provided a nonexistant mixer device"
     56  1.1  christos }
     57  1.1  christos nonexistant_device_body() {
     58  1.1  christos 	atf_check -s not-exit:0  -o ignore -e match:"No such file" \
     59  1.4       kre 		mixerctl -a -d /a/b/c/d/e
     60  1.1  christos }
     61  1.1  christos 
     62  1.1  christos atf_init_test_cases() {
     63  1.1  christos 	atf_add_test_case noargs_usage
     64  1.1  christos 	atf_add_test_case showvalue
     65  1.1  christos 	atf_add_test_case nflag
     66  1.1  christos 	atf_add_test_case nonexistant_device
     67  1.1  christos }
     68