The goal was to create a testing framework which utilizes the VirtualBox Validation Kit to test the VirtualBox audio stack.
That framework must be runnable on all host/guest combinations together with all audio drivers ("backends") and device emulations being offered. This makes it a rather big testing matrix which therefore has to be processed in an automated fashion.
Additionally it should be flexible enough to add more (custom) tests lateron.
The framework consists of several components which try to make use as much of the existing audio stack code as possible. This allows the following operation modes:
[1] src/VBox/ValidationKit/tests/audio/tdAudioTest.py
The following components are in charge for performing the audio tests (depends on the operation mode, see above):
VKAT ("Validation Kit Audio Test", also known as VBoxAudioTest): A binary which can perform the standalone audio tests mentioned above, as well as acting as the guest and host service(s) when performing manual or automated tests. It also includes the analysis / verification of audio test sets. VKAT also is included in host installations and Guest Additions since VirtualBox 7.0 to give customers and end users the opportunity to test and verify the audio stack.
See the syntax help ("--help") for more.
ATS ("Audio Testing Service"): Component which is being used by VKAT and the Validation Kit audio driver (backend) to communicate across guest and host boundaries. Currently using a TCP/IP transport layer. Also works with VMs which are configured with NAT networking ("reverse connection").
Validation Kit audio test driver (tdAudioTest.py): Used for integrating and invoking VKAT for manual and automated tests via the Validation Kit framework (Test Manager). Optional.
Validation Kit audio driver (backend): A dedicated audio backend which communicates with VKAT running on the same host to perform the actual audio tests on a VirtualBox installation. This makes it possible to test the full audio stack on a running VM without any additional / external tools.
On guest playback, data will be recorded, on guest recording, data will be injected from the host into the audio stack.
and are either packed as .tar.gz archives or consist of a dedicated directory per test set.
There always must be at least two test sets - one from the host side and one from the guest side - to perform a verification.
Each test set contains a test tag so that matching test sets can be identified.
The above components are also included in VirtualBox release builds and can be optionally enabled (disabled by default).
When a single test is being executed on a running VM, the following (simplified) workflow applies:
VM needs to be configured to have audio emulation and audio testing enabled (via extra-data, set "VBoxInternal2/Audio/Debug/Enabled" to "true").
Audio input / output for the VM needs to be enabled (depending on the test).
VKAT needs to be running on the guest and be able to connect to the host via TCP/IP.
steps necessary in order to be able to reach the host from the guest. See the VirtualBox manual for more information.
VKAT can manually be used with the "verify" sub command in order to (re-)verify previously generated test sets. It then will return different exit codes based on the verification result.
Status: | $Id: VBoxAudioValidationKitReadMe.html 92474 2021-11-17 10:44:11Z vboxsync $ |
---|---|
Copyright: | Copyright (C) 2021 Oracle Corporation. |