Ivan Orlov postou na semana passada os patches para o VALSA, o driver de som Virtual ALSA que visa ajudar os desenvolvedores do kernel Linux a testar e difundir o subsistema de som.
O driver Virtual ALSA abrange todos os casos de uso possíveis, incluindo cenários como erros e injeção de atraso, suporte para geração de dados aleatórios e baseados em padrões e muito mais. Embora o kernel Linux tenha alguns drivers de mídia virtual, até agora não houve um driver ALSA Virtual além do módulo snd-dummy.
Ivan explicou com o código VALSA:
“Este novo Virtual ALSA Driver tem vários recursos que podem ser úteis durante o teste/fuzzing de aplicativos ALSA no espaço do usuário ou teste/fuzzing da camada intermediária do PCM. Nem todos eles podem ser implementados usando os drivers virtuais existentes (como dummy ou loopback). Aqui está o que esse driver pode fazer:
-Simular os processos de captura e reprodução
-Verificar a reprodução fluxo para conter o padrão em loop
-Gerar dados de captura aleatórios ou baseados em padrão
-Injetar atrasos nos processos de reprodução e captura
-Injetar erros durante os retornos de chamada do PCMAlém disso, este driver pode verificar se o fluxo de reprodução contém o padrão predefinido, que é usado em o autoteste correspondente para verificar a funcionalidade de transferência de dados da camada intermediária do PCM. Além disso, este driver redefine o padrão RESET ioctl, e o autoteste também cobre essa funcionalidade da API do PCM.”
O código do driver VALSA é apenas cerca de 600 novas linhas, enquanto também há alguma documentação adicional.
Mais detalhes sobre o driver Linux Virtual ALSA via esta série de patches do kernel.