Home | History | Annotate | Line # | Download | only in mixerctl
t_mixerctl.sh revision 1.4
      1  1.4       kre # $NetBSD: t_mixerctl.sh,v 1.4 2017/02/23 14:01:37 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.4       kre 	(</dev/mixer) >/dev/null 2>&1 ||
     18  1.4       kre 	    atf_skip "no audio mixer available in kernel"
     19  1.4       kre 
     20  1.1  christos 	for var in $(mixerctl -a | awk -F= '{print $1}'); do
     21  1.1  christos 		atf_check -s exit:0 -e ignore -o match:"^${var}=" \
     22  1.1  christos 			mixerctl ${var}
     23  1.1  christos 	done
     24  1.1  christos }
     25  1.1  christos 
     26  1.1  christos atf_test_case nflag
     27  1.1  christos nflag_head() {
     28  1.1  christos 	atf_set "descr" "Ensure 'mixerctl -n' actually suppresses some output"
     29  1.1  christos }
     30  1.1  christos nflag_body() {
     31  1.4       kre 	(</dev/mixer) >/dev/null 2>&1 ||
     32  1.4       kre 	    atf_skip "no audio mixer available in kernel"
     33  1.4       kre 
     34  1.2       kre 	varname="$(mixerctl -a | sed -e 's/=.*//' -e q)"
     35  1.1  christos 
     36  1.1  christos 	atf_check -s exit:0 -o match:"${varname}" -e ignore \
     37  1.1  christos 		mixerctl ${varname}
     38  1.1  christos 
     39  1.1  christos 	atf_check -s exit:0 -o not-match:"${varname}" -e ignore \
     40  1.1  christos 		mixerctl -n ${varname}
     41  1.1  christos }
     42  1.1  christos 
     43  1.1  christos atf_test_case nonexistant_device
     44  1.1  christos nonexistant_device_head() {
     45  1.1  christos 	atf_set "descr" "Ensure mixerctl(1) complains if provided a nonexistant mixer device"
     46  1.1  christos }
     47  1.1  christos nonexistant_device_body() {
     48  1.1  christos 	atf_check -s not-exit:0  -o ignore -e match:"No such file" \
     49  1.4       kre 		mixerctl -a -d /a/b/c/d/e
     50  1.1  christos }
     51  1.1  christos 
     52  1.1  christos atf_init_test_cases() {
     53  1.1  christos 	atf_add_test_case noargs_usage
     54  1.1  christos 	atf_add_test_case showvalue
     55  1.1  christos 	atf_add_test_case nflag
     56  1.1  christos 	atf_add_test_case nonexistant_device
     57  1.1  christos }
     58