[PATCH] selftests: ALSA: Skip utimer test when CONFIG_SND_UTIMER is not enabled

Ben Copeland posted 1 patch 2 weeks, 3 days ago
tools/testing/selftests/alsa/utimer-test.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
[PATCH] selftests: ALSA: Skip utimer test when CONFIG_SND_UTIMER is not enabled
Posted by Ben Copeland 2 weeks, 3 days ago
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>
---
 tools/testing/selftests/alsa/utimer-test.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

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);
-- 
2.53.0
Re: [PATCH] selftests: ALSA: Skip utimer test when CONFIG_SND_UTIMER is not enabled
Posted by Takashi Iwai 1 week, 2 days ago
On Thu, 19 Mar 2026 13:45:21 +0100,
Ben Copeland wrote:
> 
> 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>

Applied to for-next branch now.  Thanks.


Takashi
Re: [PATCH] selftests: ALSA: Skip utimer test when CONFIG_SND_UTIMER is not enabled
Posted by Mark Brown 2 weeks, 3 days ago
On Thu, Mar 19, 2026 at 12:45:21PM +0000, Ben Copeland wrote:
> 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.

Reviewed-by: Mark Brown <broonie@kernel.org>