summaryrefslogtreecommitdiff
path: root/tools/testing
diff options
context:
space:
mode:
authorBen Copeland <ben.copeland@linaro.org>2026-03-19 15:45:21 +0300
committerTakashi Iwai <tiwai@suse.de>2026-03-27 16:40:18 +0300
commit4b097a7b25a01a3732f0e7569921efc9ad22bc81 (patch)
tree34a25328ec438da77b8945a78a930584719eae45 /tools/testing
parentdf3eec203b940bad98a7c0b7ec0edaaaa8cd0247 (diff)
downloadlinux-4b097a7b25a01a3732f0e7569921efc9ad22bc81.tar.xz
selftests: ALSA: Skip utimer test when CONFIG_SND_UTIMER is not enabled
The timer_f.utimer test hard-fails with ASSERT_EQ when SNDRV_TIMER_IOCTL_CREATE returns -1 on kernels without CONFIG_SND_UTIMER. This causes the entire alsa kselftest suite to report a failure rather than skipping the unsupported test. When CONFIG_SND_UTIMER is not enabled, the ioctl is not recognised and the kernel returns -ENOTTY. If the timer device or subdevice does not exist, -ENXIO is returned. Skip the test in both cases, but still fail on any other unexpected error. Suggested-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/linux-kselftest/0e9c25d3-efbd-433b-9fb1-0923010101b9@stanley.mountain/ Signed-off-by: Ben Copeland <ben.copeland@linaro.org> Reviewed-by: Mark Brown <broonie@kernel.org> Link: https://patch.msgid.link/20260319124521.191491-1-ben.copeland@linaro.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'tools/testing')
-rw-r--r--tools/testing/selftests/alsa/utimer-test.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/tools/testing/selftests/alsa/utimer-test.c b/tools/testing/selftests/alsa/utimer-test.c
index d221972cd8fb..1a9ff010cb11 100644
--- a/tools/testing/selftests/alsa/utimer-test.c
+++ b/tools/testing/selftests/alsa/utimer-test.c
@@ -15,6 +15,7 @@
#include <stdlib.h>
#include <pthread.h>
#include <string.h>
+#include <errno.h>
#define FRAME_RATE 8000
#define PERIOD_SIZE 4410
@@ -52,7 +53,14 @@ FIXTURE_SETUP(timer_f) {
timer_dev_fd = open("/dev/snd/timer", O_RDONLY);
ASSERT_GE(timer_dev_fd, 0);
- ASSERT_EQ(ioctl(timer_dev_fd, SNDRV_TIMER_IOCTL_CREATE, self->utimer_info), 0);
+ if (ioctl(timer_dev_fd, SNDRV_TIMER_IOCTL_CREATE, self->utimer_info) < 0) {
+ int err = errno;
+
+ close(timer_dev_fd);
+ if (err == ENOTTY || err == ENXIO)
+ SKIP(return, "CONFIG_SND_UTIMER not enabled");
+ ASSERT_EQ(err, 0);
+ }
ASSERT_GE(self->utimer_info->fd, 0);
close(timer_dev_fd);