From: Mark Brown Date: Fri, 17 Dec 2021 13:02:13 +0000 (+0000) Subject: kselftest: alsa: Validate values read from enumerations X-Git-Tag: v6.6.17~8344^2~28^2~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=10f2f194663af178f32aeb4086fc3f6687d25056;p=platform%2Fkernel%2Flinux-rpi.git kselftest: alsa: Validate values read from enumerations Enumerations should return a value between 0 and items-1, check that this is the case. Signed-off-by: Mark Brown Reviewed-by: Cezary Rojewski Link: https://lore.kernel.org/r/20211217130213.3893415-3-broonie@kernel.org Signed-off-by: Takashi Iwai --- diff --git a/tools/testing/selftests/alsa/mixer-test.c b/tools/testing/selftests/alsa/mixer-test.c index b009fc5..17f158d 100644 --- a/tools/testing/selftests/alsa/mixer-test.c +++ b/tools/testing/selftests/alsa/mixer-test.c @@ -276,6 +276,23 @@ bool ctl_value_index_valid(struct ctl_data *ctl, snd_ctl_elem_value_t *val, } break; + case SND_CTL_ELEM_TYPE_ENUMERATED: + int_val = snd_ctl_elem_value_get_enumerated(val, index); + + if (int_val < 0) { + ksft_print_msg("%s.%d negative value %ld for enumeration\n", + ctl->name, index, int_val); + return false; + } + + if (int_val >= snd_ctl_elem_info_get_items(ctl->info)) { + ksft_print_msg("%s.%d value %ld more than item count %ld\n", + ctl->name, index, int_val, + snd_ctl_elem_info_get_items(ctl->info)); + return false; + } + break; + default: /* No tests for other types */ break;