On Tue, 06 Jun 2023 21:32:52 +0200, Ivan Orlov wrote: > > Add documentation for the new Virtual PCM Test 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 PCM > Test Driver. > > This new Virtual PCM Test 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. > > The driver supports both interleaved and non-interleaved access modes, and > have separate pattern buffers for each channel. The driver supports up to > 4 channels and up to 8 substreams. > > Signed-off-by: Ivan Orlov <ivan.orlov0322@xxxxxxxxx> Now I merged all three patches. thanks, Takashi