VirtualBox

Ignore:
Timestamp:
Feb 14, 2024 1:29:07 PM (13 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161668
Message:

Audio/VKAT: Skip probing the same backend again when an alias for it exists.

Location:
trunk/src/VBox/ValidationKit/utils/audio
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/utils/audio/vkat.cpp

    r103174 r103352  
    979979    AUDIOTESTDRVSTACK DrvStack;
    980980    if (fProbeBackends)
    981         rc = audioTestDriverStackProbe(&DrvStack, pDrvReg,
     981        rc = audioTestDriverStackProbe(&DrvStack,
    982982                                       true /* fEnabledIn */, true /* fEnabledOut */, TstEnv.IoOpts.fWithDrvAudio); /** @todo Make in/out configurable, too. */
    983983    else
  • trunk/src/VBox/ValidationKit/utils/audio/vkatCmdGeneric.cpp

    r98103 r103352  
    195195    AUDIOTESTDRVSTACK DrvStack;
    196196    if (fProbeBackends)
    197         rc = audioTestDriverStackProbe(&DrvStack, pDrvReg,
     197        rc = audioTestDriverStackProbe(&DrvStack,
    198198                                       true /* fEnabledIn */, true /* fEnabledOut */, false /* fWithDrvAudio */);
    199199    else
  • trunk/src/VBox/ValidationKit/utils/audio/vkatCmdSelfTest.cpp

    r99775 r103352  
    136136int AudioTestDriverStackPerformSelftest(void)
    137137{
    138     PCPDMDRVREG pDrvReg = AudioTestGetDefaultBackend();
    139 
    140138    RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Testing driver stack started\n");
    141139
    142140    AUDIOTESTDRVSTACK DrvStack;
    143     int rc = audioTestDriverStackProbe(&DrvStack, pDrvReg,
     141    int rc = audioTestDriverStackProbe(&DrvStack,
    144142                                       true /* fEnabledIn */, true /* fEnabledOut */, false /* fWithDrvAudio */);
    145143    RTTEST_CHECK_RC_OK_RET(g_hTest, rc, rc);
  • trunk/src/VBox/ValidationKit/utils/audio/vkatDriverStack.cpp

    r99775 r103352  
    611611 * @returns VBox status code.
    612612 * @param   pDrvStack       The driver stack to initialize.
    613  * @param   pDrvReg         The backend driver to use.
    614613 * @param   fEnabledIn      Whether input is enabled or not on creation time.
    615614 * @param   fEnabledOut     Whether output is enabled or not on creation time.
    616615 * @param   fWithDrvAudio   Whether to include DrvAudio in the stack or not.
    617616 */
    618 int audioTestDriverStackProbe(PAUDIOTESTDRVSTACK pDrvStack, PCPDMDRVREG pDrvReg, bool fEnabledIn, bool fEnabledOut, bool fWithDrvAudio)
     617int audioTestDriverStackProbe(PAUDIOTESTDRVSTACK pDrvStack, bool fEnabledIn, bool fEnabledOut, bool fWithDrvAudio)
    619618{
    620619    int rc = VERR_IPE_UNINITIALIZED_STATUS; /* Shut up MSVC. */
    621620
     621    PCPDMDRVREG pDrvLast = NULL; /* Last probed backend. */
     622
    622623    for (size_t i = 0; i < g_cBackends; i++)
    623624    {
    624         pDrvReg = g_aBackends[i].pDrvReg;
    625         RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Probing for backend '%s' ...\n", g_aBackends[i].pszName);
     625        PCPDMDRVREG pDrvReg = g_aBackends[i].pDrvReg;
     626
     627        if (   pDrvLast
     628            && pDrvLast == pDrvReg) /* Check if we already probed the backend by another alias and skip if so. */
     629            continue;
     630
     631        pDrvLast = pDrvReg;
     632
     633        RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Probing for backend '%s' ...\n", pDrvReg->szName);
    626634
    627635        rc = audioTestDriverStackInitEx(pDrvStack, pDrvReg, fEnabledIn, fEnabledOut, fWithDrvAudio); /** @todo Make in/out configurable, too. */
    628636        if (RT_SUCCESS(rc))
    629637        {
    630             RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Probing backend '%s' successful\n", g_aBackends[i].pszName);
     638            RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Probing backend '%s' successful\n", pDrvReg->szName);
    631639            return rc;
    632640        }
    633641
    634         RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Probing backend '%s' failed with %Rrc, trying next one\n",
    635                      g_aBackends[i].pszName, rc);
    636         continue;
     642        RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Probing backend '%s' failed with %Rrc, trying next one\n", pDrvReg->szName, rc);
    637643    }
    638644
  • trunk/src/VBox/ValidationKit/utils/audio/vkatInternal.h

    r98103 r103352  
    412412int         audioTestDriverStackInitEx(PAUDIOTESTDRVSTACK pDrvStack, PCPDMDRVREG pDrvReg, bool fEnabledIn, bool fEnabledOut, bool fWithDrvAudio);
    413413int         audioTestDriverStackInit(PAUDIOTESTDRVSTACK pDrvStack, PCPDMDRVREG pDrvReg, bool fWithDrvAudio);
    414 int         audioTestDriverStackProbe(PAUDIOTESTDRVSTACK pDrvStack, PCPDMDRVREG pDrvReg, bool fEnabledIn, bool fEnabledOut, bool fWithDrvAudio);
     414int         audioTestDriverStackProbe(PAUDIOTESTDRVSTACK pDrvStack, bool fEnabledIn, bool fEnabledOut, bool fWithDrvAudio);
    415415int         audioTestDriverStackSetDevice(PAUDIOTESTDRVSTACK pDrvStack, PDMAUDIODIR enmDir, const char *pszDevId);
    416416/** @}  */
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