Changeset 90912 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- Aug 26, 2021 1:38:34 PM (3 years ago)
- Location:
- trunk/src/VBox/ValidationKit/utils/audio
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/utils/audio/vkatCommon.cpp
r90898 r90912 693 693 RT_ZERO(Val); 694 694 695 int rc; 696 697 if (!pTcpOpts->szBindAddr[0]) 698 { 699 Val.psz = "client"; 700 } 701 else if (!pTcpOpts->szConnectAddr[0]) 702 { 703 Val.psz = "server"; 704 } 705 else 706 Val.psz = "both"; 707 708 rc = AudioTestSvcClientHandleOption(pClient, ATSTCPOPT_MODE, &Val); 695 Val.u32 = pTcpOpts->enmConnMode; 696 int rc = AudioTestSvcClientHandleOption(pClient, ATSTCPOPT_CONN_MODE, &Val); 709 697 AssertRCReturn(rc, rc); 710 698 711 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Connecting %s (connection mode '%s') ...\n", pszWhat, Val.psz); 712 713 if ( !RTStrCmp(Val.psz, "client") 714 || !RTStrCmp(Val.psz, "both")) 715 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Connecting to %s:%RU32\n", pTcpOpts->szConnectAddr, pTcpOpts->uConnectPort); 716 717 if ( !RTStrCmp(Val.psz, "server") 718 || !RTStrCmp(Val.psz, "both")) 719 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Listening at %s:%RU32\n", pTcpOpts->szBindAddr, pTcpOpts->uBindPort); 720 721 if (pTcpOpts->szBindAddr[0]) 722 { 723 Val.psz = pTcpOpts->szBindAddr; 724 rc = AudioTestSvcClientHandleOption(pClient, ATSTCPOPT_BIND_ADDRESS, &Val); 725 AssertRCReturn(rc, rc); 726 } 727 728 if (pTcpOpts->uBindPort) 729 { 699 if ( pTcpOpts->enmConnMode == ATSCONNMODE_BOTH 700 || pTcpOpts->enmConnMode == ATSCONNMODE_SERVER) 701 { 702 Assert(pTcpOpts->uBindPort); /* Always set by the caller. */ 730 703 Val.u16 = pTcpOpts->uBindPort; 731 704 rc = AudioTestSvcClientHandleOption(pClient, ATSTCPOPT_BIND_PORT, &Val); 732 705 AssertRCReturn(rc, rc); 733 } 734 735 if (pTcpOpts->szConnectAddr[0]) 736 { 737 Val.psz = pTcpOpts->szConnectAddr; 738 rc = AudioTestSvcClientHandleOption(pClient, ATSTCPOPT_CONNECT_ADDRESS, &Val); 739 AssertRCReturn(rc, rc); 740 } 741 742 if (pTcpOpts->uConnectPort) 743 { 706 707 if (pTcpOpts->szBindAddr[0]) 708 { 709 Val.psz = pTcpOpts->szBindAddr; 710 rc = AudioTestSvcClientHandleOption(pClient, ATSTCPOPT_BIND_ADDRESS, &Val); 711 AssertRCReturn(rc, rc); 712 } 713 else 714 { 715 RTTestFailed(g_hTest, "No bind address specified!\n"); 716 return VERR_INVALID_PARAMETER; 717 } 718 719 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Connecting %s by listening as server at %s:%RU32 ...\n", 720 pszWhat, pTcpOpts->szBindAddr, pTcpOpts->uBindPort); 721 } 722 723 724 if ( pTcpOpts->enmConnMode == ATSCONNMODE_BOTH 725 || pTcpOpts->enmConnMode == ATSCONNMODE_CLIENT) 726 { 727 Assert(pTcpOpts->uConnectPort); /* Always set by the caller. */ 744 728 Val.u16 = pTcpOpts->uConnectPort; 745 729 rc = AudioTestSvcClientHandleOption(pClient, ATSTCPOPT_CONNECT_PORT, &Val); 746 730 AssertRCReturn(rc, rc); 731 732 if (pTcpOpts->szConnectAddr[0]) 733 { 734 Val.psz = pTcpOpts->szConnectAddr; 735 rc = AudioTestSvcClientHandleOption(pClient, ATSTCPOPT_CONNECT_ADDRESS, &Val); 736 AssertRCReturn(rc, rc); 737 } 738 else 739 { 740 RTTestFailed(g_hTest, "No connect address specified!\n"); 741 return VERR_INVALID_PARAMETER; 742 } 743 744 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Connecting %s by connecting as client to %s:%RU32 ...\n", 745 pszWhat, pTcpOpts->szConnectAddr, pTcpOpts->uConnectPort); 747 746 } 748 747 … … 773 772 RT_ZERO(Val); 774 773 775 if (pTcpOpts->szBindAddr[0]) 776 { 777 Val.psz = pTcpOpts->szBindAddr; 778 AudioTestSvcHandleOption(pSrv, ATSTCPOPT_BIND_ADDRESS, &Val); 779 } 780 781 if (pTcpOpts->uBindPort) 782 { 774 Val.u32 = pTcpOpts->enmConnMode; 775 AudioTestSvcHandleOption(pSrv, ATSTCPOPT_CONN_MODE, &Val); 776 777 if ( pTcpOpts->enmConnMode == ATSCONNMODE_BOTH 778 || pTcpOpts->enmConnMode == ATSCONNMODE_SERVER) 779 { 780 Assert(pTcpOpts->uBindPort); /* Always set by the caller. */ 783 781 Val.u16 = pTcpOpts->uBindPort; 784 782 AudioTestSvcHandleOption(pSrv, ATSTCPOPT_BIND_PORT, &Val); 785 } 786 787 if (pTcpOpts->szConnectAddr[0]) 788 { 789 Val.psz = pTcpOpts->szConnectAddr; 790 AudioTestSvcHandleOption(pSrv, ATSTCPOPT_CONNECT_ADDRESS, &Val); 791 } 792 793 if (pTcpOpts->uConnectPort) 794 { 783 784 if (pTcpOpts->szBindAddr[0]) 785 { 786 Val.psz = pTcpOpts->szBindAddr; 787 AudioTestSvcHandleOption(pSrv, ATSTCPOPT_BIND_ADDRESS, &Val); 788 } 789 else 790 { 791 RTTestFailed(g_hTest, "No bind address specified!\n"); 792 return VERR_INVALID_PARAMETER; 793 } 794 795 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Starting server for %s at %s:%RU32 ...\n", 796 pszDesc, pTcpOpts->szBindAddr, pTcpOpts->uBindPort); 797 } 798 799 800 if ( pTcpOpts->enmConnMode == ATSCONNMODE_BOTH 801 || pTcpOpts->enmConnMode == ATSCONNMODE_CLIENT) 802 { 803 Assert(pTcpOpts->uConnectPort); /* Always set by the caller. */ 795 804 Val.u16 = pTcpOpts->uConnectPort; 796 805 AudioTestSvcHandleOption(pSrv, ATSTCPOPT_CONNECT_PORT, &Val); 797 } 798 799 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Starting server for %s at %s:%RU32 ...\n", 800 pszDesc, pTcpOpts->szBindAddr[0] ? pTcpOpts->szBindAddr : "0.0.0.0", pTcpOpts->uBindPort); 801 if (pTcpOpts->szConnectAddr[0]) 802 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Trying %s to connect as client to %s:%RU32 ...\n", 803 pszDesc, pTcpOpts->szConnectAddr[0] ? pTcpOpts->szConnectAddr : "0.0.0.0", pTcpOpts->uConnectPort); 806 807 if (pTcpOpts->szConnectAddr[0]) 808 { 809 Val.psz = pTcpOpts->szConnectAddr; 810 AudioTestSvcHandleOption(pSrv, ATSTCPOPT_CONNECT_ADDRESS, &Val); 811 } 812 else 813 { 814 RTTestFailed(g_hTest, "No connect address specified!\n"); 815 return VERR_INVALID_PARAMETER; 816 } 817 818 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Starting server for %s by connecting as client to %s:%RU32 ...\n", 819 pszDesc, pTcpOpts->szConnectAddr, pTcpOpts->uConnectPort); 820 } 804 821 805 822 int rc = AudioTestSvcInit(pSrv, pCallbacks); … … 897 914 && !pTstEnv->TcpOpts.szBindAddr[0]) 898 915 RTStrCopy(pTstEnv->TcpOpts.szBindAddr, sizeof(pTstEnv->TcpOpts.szBindAddr), "0.0.0.0"); 916 917 /* 918 * Determine connection mode based on set variables. 919 */ 920 if ( pTstEnv->TcpOpts.szBindAddr[0] 921 && pTstEnv->TcpOpts.szConnectAddr[0]) 922 { 923 pTstEnv->TcpOpts.enmConnMode = ATSCONNMODE_BOTH; 924 } 925 else if (pTstEnv->TcpOpts.szBindAddr[0]) 926 pTstEnv->TcpOpts.enmConnMode = ATSCONNMODE_SERVER; 927 else /* "Reversed mode", i.e. used for NATed VMs. */ 928 pTstEnv->TcpOpts.enmConnMode = ATSCONNMODE_CLIENT; 899 929 900 930 /* Set a back reference to the test environment for the callback context. */ … … 923 953 pTstEnv->TcpOpts.uConnectPort = ATS_TCP_DEF_CONNECT_PORT_GUEST; 924 954 925 /**926 * Note: Don't set pTstEnv->TcpOpts.szTcpConnectAddr by default here, as this specifies what connection mode927 * (client / server / both) we use on the guest.928 */929 930 955 /* 931 956 * Start the ATS (Audio Test Service) on the guest side. … … 935 960 * Note that we have to bind to "0.0.0.0" by default so that the host can connect to it. 936 961 */ 937 rc = audioTestEnvConfigureAndStartTcpServer(&pTstEnv->Srv, &Callbacks, " Guest ATS", &pTstEnv->TcpOpts);962 rc = audioTestEnvConfigureAndStartTcpServer(&pTstEnv->Srv, &Callbacks, "guest", &pTstEnv->TcpOpts); 938 963 } 939 964 else /* Host mode */ … … 955 980 if (RT_SUCCESS(rc)) 956 981 rc = audioTestEnvConnectViaTcp(pTstEnv, &pTstEnv->u.Host.AtsClGuest, 957 " Host -> Guest ATS", &pTstEnv->TcpOpts);982 "host -> guest", &pTstEnv->TcpOpts); 958 983 if (RT_SUCCESS(rc)) 959 984 { 960 985 AUDIOTESTENVTCPOPTS ValKitTcpOpts; 961 986 RT_ZERO(ValKitTcpOpts); 987 988 /* We only connect as client to the Validation Kit audio driver ATS. */ 989 ValKitTcpOpts.enmConnMode = ATSCONNMODE_CLIENT; 962 990 963 991 /* For now we ASSUME that the Validation Kit audio driver ATS runs on the same host as VKAT (this binary) runs on. */ … … 968 996 if (RT_SUCCESS(rc)) 969 997 rc = audioTestEnvConnectViaTcp(pTstEnv, &pTstEnv->u.Host.AtsClValKit, 970 " Host -> Validation Kit Host Audio Driver ATS", &ValKitTcpOpts);998 "host -> valkit", &ValKitTcpOpts); 971 999 } 972 1000 } -
trunk/src/VBox/ValidationKit/utils/audio/vkatInternal.h
r90894 r90912 182 182 typedef struct AUDIOTESTENVTCPOPTS 183 183 { 184 /** Connection mode(s) to use. */ 185 ATSCONNMODE enmConnMode; 184 186 /** Bind address (server mode). When empty, "0.0.0.0" (any host) will be used. */ 185 187 char szBindAddr[128];
Note:
See TracChangeset
for help on using the changeset viewer.