kselftest: alsa: Add simplistic test for ALSA mixer controls kselftest
authorMark Brown <broonie@kernel.org>
Fri, 10 Dec 2021 18:54:08 +0000 (18:54 +0000)
committerTakashi Iwai <tiwai@suse.de>
Sun, 12 Dec 2021 09:04:27 +0000 (10:04 +0100)
commit5aaf9efffc57ea31a13af6f0bf41e96f073ed6d5
tree3f354abd5834c888d68301b847658bc4c2d07d62
parent808709d7675dc0707a9fd6a08077c2b29dca0d60
kselftest: alsa: Add simplistic test for ALSA mixer controls kselftest

Add a basic test for the mixer control interface. For every control on
every sound card in the system it checks that it can read and write the
default value where the control supports that and for writeable controls
attempts to write all valid values, restoring the default values after
each test to minimise disruption for users.

There are quite a few areas for improvement - currently no coverage of the
generation of notifications, several of the control types don't have any
coverage for the values and we don't have any testing of error handling
when we attempt to write out of range values - but this provides some basic
coverage.

This is added as a kselftest since unlike other ALSA test programs it does
not require either physical setup of the device or interactive monitoring
by users and kselftest is one of the test suites that is frequently run by
people doing general automated testing so should increase coverage. It is
written in terms of alsa-lib since tinyalsa is not generally packaged for
distributions which makes things harder for general users interested in
kselftest as a whole but it will be a barrier to people with Android.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
Link: https://lore.kernel.org/r/20211210185410.740009-2-broonie@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
MAINTAINERS
tools/testing/selftests/Makefile
tools/testing/selftests/alsa/.gitignore [new file with mode: 0644]
tools/testing/selftests/alsa/Makefile [new file with mode: 0644]
tools/testing/selftests/alsa/mixer-test.c [new file with mode: 0644]