selftests: ALSA: Skip timer tests when device is unavailable

When CONFIG_SND is disabled, opening /dev/snd/timer fails and the
userspace timer tests report failures even though the test environment
does not support ALSA timers.

Skip the affected tests when opening the timer device fails because the
device is unavailable. Continue to report unexpected open failures as
test failures.

Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218479
Signed-off-by: Alireza Feyzabadi Farahani <arfa79lg@gmail.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20260927064430.2112688-1-arfa79lg@gmail.com
This commit is contained in:
Alireza Feyzabadi Farahani 2026-09-27 06:44:30 +00:00 committed by Takashi Iwai
parent fc6b1d74ff
commit 3e9c6464da

View File

@ -51,6 +51,9 @@ FIXTURE_SETUP(timer_f) {
self->utimer_info->resolution = (NANO / FRAME_RATE * PERIOD_SIZE);
timer_dev_fd = open("/dev/snd/timer", O_RDONLY);
if (timer_dev_fd < 0 &&
(errno == ENOENT || errno == ENODEV || errno == ENXIO))
SKIP(return, "ALSA timer device unavailable");
ASSERT_GE(timer_dev_fd, 0);
if (ioctl(timer_dev_fd, SNDRV_TIMER_IOCTL_CREATE, self->utimer_info) < 0) {
@ -156,6 +159,9 @@ TEST(wrong_timers_test) {
};
timer_dev_fd = open("/dev/snd/timer", O_RDONLY);
if (timer_dev_fd < 0 &&
(errno == ENOENT || errno == ENODEV || errno == ENXIO))
SKIP(return, "ALSA timer device unavailable");
ASSERT_GE(timer_dev_fd, 0);
utimer_fd = ioctl(timer_dev_fd, SNDRV_TIMER_IOCTL_CREATE, &wrong_timer);