summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2022-12-01 20:07:41 +0300
committerTakashi Iwai <tiwai@suse.de>2022-12-01 22:02:11 +0300
commitf944f8b539ea76bd70348bfc35dfa0780e510c0f (patch)
tree2acb0e0f21ada5e8faaebd563361ae91da234eeb
parent22eeb8f531c117943a3ef9a75d4d40cdbcc66fb1 (diff)
downloadlinux-f944f8b539ea76bd70348bfc35dfa0780e510c0f.tar.xz
kselftest/alsa: Report failures to set the requested sample rate as skips
If constraint selection gives us a sample rate other than the one that we asked for that isn't a failure, that is the device implementing sample rate constraints and advertising that it can't support whatever we asked for. Report such cases as a test skip rather than failure so we don't have false positives. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20221201170745.1111236-3-broonie@kernel.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--tools/testing/selftests/alsa/pcm-test.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/tools/testing/selftests/alsa/pcm-test.c b/tools/testing/selftests/alsa/pcm-test.c
index dc36f4099954..edb820fe2ee6 100644
--- a/tools/testing/selftests/alsa/pcm-test.c
+++ b/tools/testing/selftests/alsa/pcm-test.c
@@ -247,6 +247,7 @@ static void test_pcm_time1(struct pcm_data *data,
bool pass = false, automatic = true;
snd_pcm_hw_params_t *hw_params;
snd_pcm_sw_params_t *sw_params;
+ bool skip = false;
snd_pcm_hw_params_alloca(&hw_params);
snd_pcm_sw_params_alloca(&sw_params);
@@ -321,7 +322,8 @@ __format:
goto __close;
}
if (rrate != rate) {
- snprintf(msg, sizeof(msg), "rate mismatch %ld != %ld", rate, rrate);
+ snprintf(msg, sizeof(msg), "rate unsupported %ld != %ld", rate, rrate);
+ skip = true;
goto __close;
}
rperiod_size = period_size;
@@ -417,11 +419,20 @@ __format:
msg[0] = '\0';
pass = true;
__close:
- ksft_test_result(pass, "%s.%d.%d.%d.%s%s%s\n",
- test->cfg_prefix,
- data->card, data->device, data->subdevice,
- snd_pcm_stream_name(data->stream),
- msg[0] ? " " : "", msg);
+ if (!skip) {
+ ksft_test_result(pass, "%s.%d.%d.%d.%s%s%s\n",
+ test->cfg_prefix,
+ data->card, data->device, data->subdevice,
+ snd_pcm_stream_name(data->stream),
+ msg[0] ? " " : "", msg);
+ } else {
+ ksft_test_result_skip("%s.%d.%d.%d.%s%s%s\n",
+ test->cfg_prefix,
+ data->card, data->device,
+ data->subdevice,
+ snd_pcm_stream_name(data->stream),
+ msg[0] ? " " : "", msg);
+ }
free(samples);
if (handle)
snd_pcm_close(handle);