On Sat, 13 May 2023 22:20:35 +0200, Ivan Orlov wrote: > > Add documentation for the new Virtual ALSA driver. It covers all possible > usage cases: errors and delay injections, random and pattern-based data > generation, playback and ioctl redefinition functionalities testing. > > We have a lot of different virtual media drivers, which can be used for > testing of the userspace applications and media subsystem middle layer. > However, all of them are aimed at testing the video functionality and > simulating the video devices. For audio devices we have only snd-dummy > module, which is good in simulating the correct behavior of an ALSA device. > I decided to write a tool, which would help to test the userspace ALSA > programs (and the PCM middle layer as well) under unusual circumstances > to figure out how they would behave. So I came up with this Virtual ALSA > Driver. > > This new Virtual ALSA Driver has several features which can be useful > during the userspace ALSA applications testing/fuzzing, or testing/fuzzing > of the PCM middle layer. Not all of them can be implemented using the > existing virtual drivers (like dummy or loopback). Here is what can this > driver do: > > - Simulate both capture and playback processes > - Check the playback stream for containing the looped pattern > - Generate random or pattern-based capture data > - Inject delays into the playback and capturing processes > - Inject errors during the PCM callbacks > > Also, this driver can check the playback stream for containing the > predefined pattern, which is used in the corresponding selftest to check > the PCM middle layer data transferring functionality. Additionally, this > driver redefines the default RESET ioctl, and the selftest covers this PCM > API functionality as well. > > Signed-off-by: Ivan Orlov <ivan.orlov0322@xxxxxxxxx> > --- > Documentation/admin-guide/index.rst | 1 + > Documentation/admin-guide/valsa.rst | 114 ++++++++++++++++++++++++++++ We have already subdirectories for the sound stuff (Documentation/sound/*), and this should go to there, I suppose (unless there is somewhere dedicated for each selftest scenario). thanks, Takashi