Changeset 89614 in vbox for trunk/src/VBox/ValidationKit/utils
- Timestamp:
- Jun 11, 2021 6:34:13 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 145058
- Location:
- trunk/src/VBox/ValidationKit/utils/audio
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/utils/audio/vkat.cpp
r89575 r89614 545 545 if (RT_SUCCESS(rc)) 546 546 rc = rc2; 547 547 548 rc2 = AudioTestSvcClientTestSetEnd(&pTstEnv->u.Host.AtsClValKit, szTagHost); 548 549 if (RT_SUCCESS(rc)) 549 550 rc = rc2; 551 552 if (RT_SUCCESS(rc)) 553 { 554 /* 555 * Download guest test set to host. 556 */ 557 char szFileName[RTPATH_MAX]; 558 if (RTStrPrintf2(szFileName, sizeof(szFileName), "%s.tar.gz", szTagGuest)) 559 { 560 char szFilePath[RTPATH_MAX]; 561 rc2 = RTPathJoin(szFilePath, sizeof(szFilePath), pTstEnv->szPathOut, szFileName); 562 if (RT_SUCCESS(rc2)) 563 { 564 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Downloading guest test set to '%s'\n", szFilePath); 565 rc2 = AudioTestSvcClientTestSetDownload(&pTstEnv->u.Host.AtsClGuest, szTagGuest, szFilePath); 566 } 567 } 568 else 569 rc2 = VERR_BUFFER_OVERFLOW; 570 571 if (RT_SUCCESS(rc)) 572 rc = rc2; 573 } 550 574 } 551 575 } -
trunk/src/VBox/ValidationKit/utils/audio/vkatCommon.cpp
r89584 r89614 64 64 typedef struct ATSCALLBACKCTX 65 65 { 66 /** The test environment bound to this context. */ 66 67 PAUDIOTESTENV pTstEnv; 68 /** Absolute path to the packed up test set archive. 69 * Keep it simple for now and only support one (open) archive at a time. */ 70 char szTestSetArchive[RTPATH_MAX]; 71 /** File handle to the (opened) test set archive for reading. */ 72 RTFILE hTestSetArchive; 67 73 } ATSCALLBACKCTX; 68 74 typedef ATSCALLBACKCTX *PATSCALLBACKCTX; … … 421 427 RTTestPrintf(g_hTest, RTTESTLVL_DEBUG, "Ending test set '%s'\n", pszTag); 422 428 423 return audioTestEnvPrologue(pTstEnv); 429 /* Pack up everything to be ready for transmission. */ 430 return audioTestEnvPrologue(pTstEnv, true /* fPack */, pCtx->szTestSetArchive, sizeof(pCtx->szTestSetArchive)); 424 431 } 425 432 … … 507 514 else 508 515 RTTestFailed(g_hTest, "Error creating input stream, rc=%Rrc\n", rc); 516 517 return rc; 518 } 519 520 /** @copydoc ATSCALLBACKS::pfnTestSetSendBegin */ 521 static DECLCALLBACK(int) audioTestGstAtsTestSetSendBeginCallback(void const *pvUser, const char *pszTag) 522 { 523 RT_NOREF(pszTag); 524 525 PATSCALLBACKCTX pCtx = (PATSCALLBACKCTX)pvUser; 526 527 if (!RTFileExists(pCtx->szTestSetArchive)) /* Has the archive successfully been created yet? */ 528 return VERR_WRONG_ORDER; 529 530 int rc = RTFileOpen(&pCtx->hTestSetArchive, pCtx->szTestSetArchive, RTFILE_O_READ | RTFILE_O_OPEN | RTFILE_O_DENY_WRITE); 531 if (RT_SUCCESS(rc)) 532 { 533 uint64_t uSize; 534 rc = RTFileQuerySize(pCtx->hTestSetArchive, &uSize); 535 if (RT_SUCCESS(rc)) 536 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Sending test set '%s' (%zu bytes)\n", pCtx->szTestSetArchive, uSize); 537 } 538 539 return rc; 540 } 541 542 /** @copydoc ATSCALLBACKS::pfnTestSetSendRead */ 543 static DECLCALLBACK(int) audioTestGstAtsTestSetSendReadCallback(void const *pvUser, 544 const char *pszTag, void *pvBuf, size_t cbBuf, size_t *pcbRead) 545 { 546 RT_NOREF(pszTag); 547 548 PATSCALLBACKCTX pCtx = (PATSCALLBACKCTX)pvUser; 549 550 return RTFileRead(pCtx->hTestSetArchive, pvBuf, cbBuf, pcbRead); 551 } 552 553 /** @copydoc ATSCALLBACKS::pfnTestSetSendEnd */ 554 static DECLCALLBACK(int) audioTestGstAtsTestSetSendEndCallback(void const *pvUser, const char *pszTag) 555 { 556 RT_NOREF(pszTag); 557 558 PATSCALLBACKCTX pCtx = (PATSCALLBACKCTX)pvUser; 559 560 int rc = RTFileClose(pCtx->hTestSetArchive); 561 if (RT_SUCCESS(rc)) 562 { 563 pCtx->hTestSetArchive = NIL_RTFILE; 564 } 509 565 510 566 return rc; … … 658 714 659 715 ATSCALLBACKS Callbacks; 660 Callbacks.pfnTestSetBegin = audioTestGstAtsTestSetBeginCallback; 661 Callbacks.pfnTestSetEnd = audioTestGstAtsTestSetEndCallback; 662 Callbacks.pfnTonePlay = audioTestGstAtsTonePlayCallback; 663 Callbacks.pfnToneRecord = audioTestGstAtsToneRecordCallback; 664 Callbacks.pvUser = &Ctx; 716 Callbacks.pfnTestSetBegin = audioTestGstAtsTestSetBeginCallback; 717 Callbacks.pfnTestSetEnd = audioTestGstAtsTestSetEndCallback; 718 Callbacks.pfnTonePlay = audioTestGstAtsTonePlayCallback; 719 Callbacks.pfnToneRecord = audioTestGstAtsToneRecordCallback; 720 Callbacks.pfnTestSetSendBegin = audioTestGstAtsTestSetSendBeginCallback; 721 Callbacks.pfnTestSetSendRead = audioTestGstAtsTestSetSendReadCallback; 722 Callbacks.pfnTestSetSendEnd = audioTestGstAtsTestSetSendEndCallback; 723 Callbacks.pvUser = &Ctx; 665 724 666 725 /* … … 725 784 * @returns VBox status code. 726 785 * @param pTstEnv Test environment to handle. 727 */ 728 int audioTestEnvPrologue(PAUDIOTESTENV pTstEnv) 786 * @param fPack Whether to pack the test set up before destroying / wiping it. 787 * @param pszPackFile Where to store the packed test set file on success. Can be NULL if \a fPack is \c false. 788 * @param cbPackFile Size (in bytes) of \a pszPackFile. Can be 0 if \a fPack is \c false. 789 */ 790 int audioTestEnvPrologue(PAUDIOTESTENV pTstEnv, bool fPack, char *pszPackFile, size_t cbPackFile) 729 791 { 730 792 /* Close the test set first. */ 731 793 AudioTestSetClose(&pTstEnv->Set); 732 794 733 /* Before destroying the test environment, pack up the test set so 734 * that it's ready for transmission. */ 735 char szFileOut[RTPATH_MAX]; 736 int rc = AudioTestSetPack(&pTstEnv->Set, pTstEnv->szPathOut, szFileOut, sizeof(szFileOut)); 737 if (RT_SUCCESS(rc)) 738 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Test set packed up to '%s'\n", szFileOut); 795 int rc = VINF_SUCCESS; 796 797 if (fPack) 798 { 799 /* Before destroying the test environment, pack up the test set so 800 * that it's ready for transmission. */ 801 rc = AudioTestSetPack(&pTstEnv->Set, pTstEnv->szPathOut, pszPackFile, cbPackFile); 802 if (RT_SUCCESS(rc)) 803 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Test set packed up to '%s'\n", pszPackFile); 804 } 739 805 740 806 /* ignore rc */ AudioTestSetWipe(&pTstEnv->Set); -
trunk/src/VBox/ValidationKit/utils/audio/vkatInternal.h
r89584 r89614 420 420 int audioTestEnvInit(PAUDIOTESTENV pTstEnv, PCPDMDRVREG pDrvReg, bool fWithDrvAudio, const char *pszHostTcpAddr, uint32_t uHostTcpPort, const char *pszGuestTcpAddr, uint32_t uGuestTcpPort); 421 421 void audioTestEnvDestroy(PAUDIOTESTENV pTstEnv); 422 int audioTestEnvPrologue(PAUDIOTESTENV pTstEnv );422 int audioTestEnvPrologue(PAUDIOTESTENV pTstEnv, bool fPack, char *pszFilePath, size_t cbFilePath); 423 423 424 424 void audioTestParmsInit(PAUDIOTESTPARMS pTstParms);
Note:
See TracChangeset
for help on using the changeset viewer.