VirtualBox

Ignore:
Timestamp:
Nov 24, 2021 9:29:59 AM (3 years ago)
Author:
vboxsync
Message:

Audio/Validation Kit: Updated docs based on latest feedback. bugref:10008

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/docs/VBoxAudioValidationKitReadMe.html

    r92474 r92584  
    55<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    66<meta name="generator" content="Docutils 0.18: http://docutils.sourceforge.net/" />
    7 <title>Audio Testing via Validation Kit</title>
     7<title>Audio Testing of VirtualBox</title>
    88<style type="text/css">
    99
     
    361361</head>
    362362<body>
    363 <div class="document" id="audio-testing-via-validation-kit">
    364 <h1 class="title">Audio Testing via Validation Kit</h1>
     363<div class="document" id="audio-testing-of-virtualbox">
     364<h1 class="title">Audio Testing of VirtualBox</h1>
    365365
    366366<div class="section" id="overview-goal">
    367367<h1>Overview / Goal</h1>
    368 <p>The goal was to create a testing framework which utilizes the
    369 VirtualBox Validation Kit to test the VirtualBox audio stack.</p>
     368<p>The goal is to create a flexible testing framework to test the
     369VirtualBox audio stack.</p>
     370<p>It should be runnable with an easy-to-use setup so that also regular users
     371can perform tests on request, without having to install or set up additional
     372dependencies.</p>
    370373<p>That framework must be runnable on all host/guest combinations together with all
    371374audio drivers (&quot;backends&quot;) and device emulations being offered. This makes it a
    372375rather big testing matrix which therefore has to be processed in an automated
    373376fashion.</p>
    374 <p>Additionally it should be flexible enough to add more (custom) tests lateron.</p>
    375 </div>
    376 <div class="section" id="current-status-limitations">
    377 <h1>Current status / limitations</h1>
    378 <ul class="simple">
    379 <li><dl class="first docutils">
    380 <dt>The following test types are currently implemented:</dt>
    381 <dd><ul class="first last">
    382 <li>Test tone (sine wave) playback from the guest</li>
    383 <li>Test tone (sine wave) recording by the guest (injected from the host)</li>
    384 </ul>
    385 </dd>
    386 </dl>
    387 </li>
    388 <li>Only the HDA device emulation has been verified so far.</li>
    389 <li>Only the ALSA audio stack on Debian 10 has been verified so far.
    390 Note: This is different from PulseAudio using the ALSA plugin!</li>
    391 </ul>
     377<p>Additionally it should be flexible enough to add more (custom) tests later on.</p>
    392378</div>
    393379<div class="section" id="operation">
     
    396382the existing audio stack code as possible. This allows the following
    397383operation modes:</p>
    398 <ul class="simple">
    399 <li>Standalone: Playing back / recording audio data (test tones / .WAV files) in a
     384<dl class="docutils">
     385<dt>Standalone</dt>
     386<dd>Playing back / recording audio data (test tones / .WAV files) in a
    400387standalone scenario, i.e. no VirtualBox / VMs required). This mode is using
    401 the audio (mixing) stack and available backend drivers without the need of
    402 VirtualBox being installed.</li>
    403 <li>Manual: Performing single / multiple tests manually on a local machine.
    404 Requires a running and set up test VM.</li>
    405 <li>Automated: Performs single / multiple tests via the Validation Kit audio test
    406 driver and can be triggered via the Validation Kit Test Manager. The test
    407 driver can be found at [1].</li>
    408 <li>(Re-)validation of previously ran tests: This takes two test sets and runs
    409 the validation / analysis on them. See VKAT's &quot;verify&quot; sub command for more.</li>
    410 <li>Self testing mode: Performs standalone self tests to verify / debug the
    411 involved components. See VKAT's &quot;selftest&quot; sub command for more.</li>
    412 </ul>
    413 <p>[1] src/VBox/ValidationKit/tests/audio/tdAudioTest.py</p>
     388VirtualBox' audio (mixing) stack and available backend drivers without the
     389need of VirtualBox being installed.</dd>
     390<dt>Manual</dt>
     391<dd>Performing single / multiple tests manually on a local machine.
     392Requires a running and set up test VM.</dd>
     393<dt>Automated</dt>
     394<dd>Performs single / multiple tests via the Validation Kit audio test
     395driver and can be triggered via the Validation Kit Test Manager.</dd>
     396<dt>(Re-)validation of previously ran tests</dt>
     397<dd>This takes two test sets and runs the validation / analysis on them.</dd>
     398<dt>Self testing mode</dt>
     399<dd>Performs standalone self tests to verify / debug the involved components.</dd>
     400</dl>
    414401</div>
    415402<div class="section" id="components-and-terminology">
     
    418405(depends on the operation mode, see above):</p>
    419406<ul>
    420 <li><p class="first">VKAT (&quot;Validation Kit Audio Test&quot;, also known as VBoxAudioTest):
     407<li><p class="first">VBoxAudioTest (also known as VKAT, &quot;Validation Kit Audio Test&quot;):
    421408A binary which can perform the standalone audio tests mentioned above, as well
    422409as acting as the guest and host service(s) when performing manual or automated
     
    440427<p>See the syntax help (&quot;--help&quot;) for more.</p>
    441428</li>
    442 <li><p class="first">ATS (&quot;Audio Testing Service&quot;): Component which is being used by VKAT and the
     429<li><p class="first">ATS (&quot;Audio Testing Service&quot;): Component which is being used by 1 and the
    443430Validation Kit audio driver (backend) to communicate across guest and host
    444431boundaries. Currently using a TCP/IP transport layer. Also works with VMs
     
    447434<li><p class="first">Validation Kit audio test driver (tdAudioTest.py): Used for integrating and
    448435invoking VKAT for manual and automated tests via the Validation Kit framework
    449 (Test Manager). Optional.</p>
     436(Test Manager). Optional. The test driver can be found at <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</p>
    450437</li>
    451438<li><p class="first">Validation Kit audio driver (backend): A dedicated audio backend which
     
    474461<p>The above components are also included in VirtualBox release builds and can be
    475462optionally enabled (disabled by default).</p>
    476 </div>
    477 <div class="section" id="workflow-for-a-single-test">
    478 <h1>Workflow for a single test</h1>
     463<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
     464<colgroup><col class="label" /><col /></colgroup>
     465<tbody valign="top">
     466<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>src/VBox/ValidationKit/tests/audio/tdAudioTest.py</td></tr>
     467</tbody>
     468</table>
     469</div>
     470<div class="section" id="setup-instructions">
     471<h1>Setup instructions</h1>
     472<ul>
     473<li><p class="first">VM needs to be configured to have audio emulation and audio testing enabled
     474(via extra-data, set &quot;VBoxInternal2/Audio/Debug/Enabled&quot; to &quot;true&quot;).</p>
     475</li>
     476<li><p class="first">Audio input / output for the VM needs to be enabled (depending on the test).</p>
     477</li>
     478<li><p class="first">Start VBoxAudioTest on the guest, for example:</p>
     479<p>VBoxAudioTest test --mode guest --tcp-connect-address 10.0.2.2</p>
     480<dl class="docutils">
     481<dt>Note: VBoxAudioTest is included with the Guest Additions starting at</dt>
     482<dd><p class="first last">VirtualBox 7.0.</p>
     483</dd>
     484<dt>Note: Depending on the VM's networking configuration there might be further</dt>
     485<dd><p class="first last">steps necessary in order to be able to reach the host from the guest.
     486See the VirtualBox manual for more information.</p>
     487</dd>
     488</dl>
     489</li>
     490</ul>
     491</div>
     492<div class="section" id="performing-a-manual-test">
     493<h1>Performing a manual test</h1>
     494<ul>
     495<li><p class="first">Follow &quot;Setup instructions&quot;.</p>
     496</li>
     497<li><p class="first">Start VBoxAudioTest on the host with selected test(s), for example:</p>
     498<p>VBoxAudioTest test --mode host</p>
     499<blockquote>
     500<dl class="docutils">
     501<dt>Note: VBoxAudioTest is included with the VirtualBox 7.0 host installers and</dt>
     502<dd><p class="first last">will be installed by default.</p>
     503</dd>
     504</dl>
     505</blockquote>
     506</li>
     507<li><p class="first">By default the test verification will be done automatically after running the
     508tests.</p>
     509</li>
     510</ul>
     511</div>
     512<div class="section" id="advanced-performing-manual-verification">
     513<h1>Advanced: Performing manual verification</h1>
     514<p>VBoxAudioTest can manually be used with the &quot;verify&quot; sub command in order to
     515(re-)verify previously generated test sets. It then will return different exit
     516codes based on the verification result.</p>
     517</div>
     518<div class="section" id="advanced-performing-an-automated-test">
     519<h1>Advanced: Performing an automated test</h1>
     520<ul class="simple">
     521<li>TxS (Test E[x]ecution Service) has to be up and running (part of the
     522Validation Kit) on the guest.</li>
     523<li>Invoke the tdAudioTest.py test driver, either manually or fully automated
     524via Test Manager.</li>
     525</ul>
     526</div>
     527<div class="section" id="internals-workflow-for-a-single-test">
     528<h1>Internals: Workflow for a single test</h1>
    479529<p>When a single test is being executed on a running VM, the following (simplified)
    480530workflow applies:</p>
     
    505555</ul>
    506556</div>
    507 <div class="section" id="setup-instructions">
    508 <h1>Setup instructions</h1>
    509 <ul>
    510 <li><p class="first">VM needs to be configured to have audio emulation and audio testing enabled
    511 (via extra-data, set &quot;VBoxInternal2/Audio/Debug/Enabled&quot; to &quot;true&quot;).</p>
    512 </li>
    513 <li><p class="first">Audio input / output for the VM needs to be enabled (depending on the test).</p>
    514 </li>
    515 <li><p class="first">VKAT needs to be running on the guest and be able to connect to the host via
    516 TCP/IP.</p>
    517 <dl class="docutils">
    518 <dt>Note: Depending on the VM's networking configuration there might be further</dt>
    519 <dd><p class="first last">steps necessary in order to be able to reach the host from the guest.
    520 See the VirtualBox manual for more information.</p>
     557<div class="section" id="current-status-limitations">
     558<h1>Current status / limitations</h1>
     559<ul class="simple">
     560<li><dl class="first docutils">
     561<dt>The following test types are currently implemented:</dt>
     562<dd><ul class="first last">
     563<li>Test tone (sine wave) playback from the guest</li>
     564<li>Test tone (sine wave) recording by the guest (injected from the host)</li>
     565</ul>
    521566</dd>
    522567</dl>
    523568</li>
    524 </ul>
    525 </div>
    526 <div class="section" id="performing-a-manual-test">
    527 <h1>Performing a manual test</h1>
    528 <ul class="simple">
    529 <li>Follow &quot;Setup instructions&quot;.</li>
    530 <li>Start VKAT on the guest (in &quot;guest mode&quot;, e.g. &quot;test --mode guest&quot;).</li>
    531 <li>Start VKAT on the host (in &quot;host mode&quot;, e.g. &quot;test --mode host&quot;) with
    532 selected test(s).</li>
    533 <li>By default the test verification will be done automatically after running the
    534 tests.</li>
    535 </ul>
    536 </div>
    537 <div class="section" id="performing-manual-verification">
    538 <h1>Performing manual verification</h1>
    539 <p>VKAT can manually be used with the &quot;verify&quot; sub command in order to (re-)verify
    540 previously generated test sets. It then will return different exit codes based
    541 on the verification result.</p>
    542 </div>
    543 <div class="section" id="performing-an-automated-test">
    544 <h1>Performing an automated test</h1>
    545 <ul class="simple">
    546 <li>TxS (Test E[x]ecution Service) has to be up and running (part of the
    547 Validation Kit) on the guest.</li>
    548 <li>Invoke the tdAudioTest.py test driver, either manually or fully automated
    549 via Test Manager.</li>
     569<li>Only the HDA device emulation has been verified so far.</li>
     570<li>Only the ALSA audio stack on Debian 10 has been verified so far.
     571Note: This is different from PulseAudio using the ALSA plugin!</li>
    550572</ul>
    551573</div>
     
    555577<li>Make sure that audio device emulation is enabled and can be used within the
    556578guest. Also, audio input / output has to be enabled, depending on the tests.</li>
    557 <li>Make sure that the guest's VKAT instance can reach the host via the selected
    558 transport lay (TCP/IP by default).</li>
     579<li>Make sure that the guest's VBoxAudioTest's instance can reach the host via
     580the selected transport layer (TCP/IP by default).</li>
    559581<li>Increase the hosts audio logging level
    560582(via extra-data, set &quot;VBoxInternal2/Audio/Debug/Level&quot; to &quot;5&quot;).</li>
    561 <li>Increase VKAT's verbosity level (add &quot;-v&quot;, can be specified multiple times).</li>
    562 <li>Check if the the VBox release log contains any warnings / errors with the
     583<li>Increase VBoxAudioTest's verbosity level (add &quot;-v&quot;, can be specified
     584multiple times).</li>
     585<li>Check if the VBox release log contains any warnings / errors with the
    563586&quot;ValKit:&quot; prefix.</li>
    564587</ul>
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette