Index: /trunk/src/VBox/ValidationKit/utils/audio/vkatCmdSelfTest.cpp
===================================================================
--- /trunk/src/VBox/ValidationKit/utils/audio/vkatCmdSelfTest.cpp	(revision 92438)
+++ /trunk/src/VBox/ValidationKit/utils/audio/vkatCmdSelfTest.cpp	(revision 92439)
@@ -69,6 +69,5 @@
     /** Common tag for guest and host side. */
     char             szTag[AUDIOTEST_TAG_MAX];
-    /** Whether to use DrvAudio in the driver stack or not. */
-    bool             fWithDrvAudio;
+    /** The driver stack in use. */
     AUDIOTESTDRVSTACK DrvStack;
     /** Audio driver to use.
@@ -332,4 +331,5 @@
     { "--backend",          'b',                                RTGETOPT_REQ_STRING  },
     { "--with-drv-audio",   'd',                                RTGETOPT_REQ_NOTHING },
+    { "--with-mixer",       'm',                                RTGETOPT_REQ_NOTHING },
     { "--exclude",          'e',                                RTGETOPT_REQ_UINT32  },
     { "--include",          'i',                                RTGETOPT_REQ_UINT32  }
@@ -346,4 +346,5 @@
         case 'e': return "Exclude the given test id from the list";
         case 'i': return "Include the given test id in the list";
+        case 'm': return "Use the internal mixing engine explicitly";
         default:  return NULL;
     }
@@ -359,4 +360,10 @@
 {
     RT_ZERO(g_Ctx);
+
+    audioTestEnvInit(&g_Ctx.Guest.TstEnv);
+    audioTestEnvInit(&g_Ctx.Host.TstEnv);
+
+    AUDIOTESTIOOPTS IoOpts;
+    audioTestIoOptsInitDefaults(&IoOpts);
 
     /* Argument processing loop: */
@@ -379,5 +386,5 @@
 
             case 'd':
-                g_Ctx.fWithDrvAudio = true;
+                IoOpts.fWithDrvAudio = true;
                 break;
 
@@ -394,4 +401,8 @@
                 break;
 
+            case 'm':
+                IoOpts.fWithMixer = true;
+                break;
+
             AUDIO_TEST_COMMON_OPTION_CASES(ValueUnion);
 
@@ -400,4 +411,9 @@
         }
     }
+
+    /* For simplicity both test environments, guest and host, will have the same I/O options.
+     ** @todo Make this indepedent by a prefix, "--[guest|host]-<option>" -> e.g. "--guest-with-drv-audio". */
+    memcpy(&g_Ctx.Guest.TstEnv.IoOpts, &IoOpts, sizeof(AUDIOTESTIOOPTS));
+    memcpy(&g_Ctx.Host.TstEnv.IoOpts,  &IoOpts, sizeof(AUDIOTESTIOOPTS));
 
     rc = AudioTestDriverStackPerformSelftest();
@@ -419,5 +435,5 @@
      */
     rc = audioTestDriverStackInitEx(&g_Ctx.DrvStack, g_Ctx.pDrvReg,
-                                    true /* fEnabledIn */, true /* fEnabledOut */, g_Ctx.fWithDrvAudio);
+                                    true /* fEnabledIn */, true /* fEnabledOut */, g_Ctx.Host.TstEnv.IoOpts.fWithDrvAudio);
     if (RT_FAILURE(rc))
         return RTMsgErrorExit(RTEXITCODE_SYNTAX, "Unable to init driver stack: %Rrc\n", rc);
