/*++ Copyright (c) 1995 Microsoft Corporation Module Name: itlgac.c Abstract: This module contains the test functions for lineGetAgentCaps Author: Xiao Ying Ding (XiaoD) 21-Dec-1995 Revision History: --*/ #include "windows.h" #include "malloc.h" #include "string.h" #include "tapi.h" #include "trapper.h" #include "tcore.h" #include "ttest.h" #include "doline.h" #include "vars.h" #include "line20.h" #define NUMTOTALSIZES 5 // lineGetAgentCaps // // The following tests are made: // // Tested Notes // ------------------------------------------------------------------------- // 1. Go/No-Go test // 2. Bad hLineApp // 3. Bad dwDeviceID // 4. Bad dwAddressID // 5. Bad dwAppAPIVersion // 6. Bad lpAgentCaps // 7. Bad dwTotalSize // 8. Open with no proxy request // // * = Stand-alone test case // // BOOL TestLineGetAgentCaps(BOOL fQuietMode, BOOL fStandAlone) { LPTAPILINETESTINFO lpTapiLineTestInfo; INT i, n; BOOL fTestPassed = TRUE; LPDWORD lpRequestBuf; LONG lret; LPTAPIMSG lpTapiMsg = NULL; LPTAPIMSG lpMatch; DWORD dwFixedSize = sizeof(LINEAGENTCAPS); DWORD lExpected; DWORD dwTotalSizes[NUMTOTALSIZES] = { 0, (DWORD) dwFixedSize - 1, 0x70000000, 0x7FFFFFFF, 0xFFFFFFFF }; InitTestNumber(); OutputTAPIDebugInfo( DBUG_SHOW_PASS, "\n***************************************************************"); OutputTAPIDebugInfo( DBUG_SHOW_PASS, ">> Test lineGetAgentCaps"); // =================================================================== // =================================================================== // // 1. Test Case: Go/No-Go test for owner. // // =================================================================== // =================================================================== TapiLineTestInit(); lpTapiLineTestInfo = GetLineTestInfo(); fTestPassed = TRUE; // // Initialize a line app // lpTapiLineTestInfo->lpLineInitializeExParams = (LPLINEINITIALIZEEXPARAMS) AllocFromTestHeap ( sizeof(LINEINITIALIZEEXPARAMS)); lpTapiLineTestInfo->lpLineInitializeExParams->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS); lpTapiLineTestInfo->lpLineInitializeExParams->dwOptions = LINEINITIALIZEEXOPTION_USEHIDDENWINDOW; lpTapiLineTestInfo->lpdwAPIVersion = &lpTapiLineTestInfo->dwAPIVersion; lpTapiLineTestInfo->dwAPIVersion = TAPI_VERSION2_0; if(! DoLineInitializeEx (lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } lpTapiLineTestInfo->dwDeviceID = (*(lpTapiLineTestInfo->lpdwNumDevs) == 0 ? 0 : *(lpTapiLineTestInfo->lpdwNumDevs)-1); if(IsUNIMDMLineDevice(lpTapiLineTestInfo)) { TapiLogDetail( DBUG_SHOW_DETAIL, "## lineGetAgentActivityList unimodem didn't support"); return fTestPassed; } lpTapiLineTestInfo->dwAPIVersion = HIGH_APIVERSION; lpTapiLineTestInfo->dwExtLowVersion = LOW_APIVERSION; lpTapiLineTestInfo->dwExtHighVersion = HIGH_APIVERSION; lpTapiLineTestInfo->lpdwExtVersion = &lpTapiLineTestInfo->dwExtVersion; // // Negotiate the API Ext Version // if (! DoLineNegotiateExtVersion(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Open a line // lpTapiLineTestInfo->dwMediaModes = LINEMEDIAMODE_DATAMODEM; lpTapiLineTestInfo->dwPrivileges = LINECALLPRIVILEGE_OWNER | LINEOPENOPTION_PROXY; lpTapiLineTestInfo->lpCallParams = (LPLINECALLPARAMS) AllocFromTestHeap ( sizeof(LINECALLPARAMS) + sizeof(DWORD)); lpTapiLineTestInfo->lpCallParams->dwTotalSize = sizeof(LINECALLPARAMS) + sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificSize = sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset = sizeof(LINECALLPARAMS); lpRequestBuf = (LPDWORD) (((LPBYTE)lpTapiLineTestInfo->lpCallParams) + lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset); *lpRequestBuf = LINEPROXYREQUEST_GETAGENTCAPS; if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Go / No Go test", dwTestCase+1); // // Get the line device capabilities // lpTapiLineTestInfo->lpAgentCaps = (LPLINEAGENTCAPS) AllocFromTestHeap( sizeof(LINEAGENTCAPS) ); lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = sizeof(LINEAGENTCAPS); lpTapiLineTestInfo->dwAppAPIVersion = TAPI_VERSION2_0; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, TAPISUCCESS, TRUE)) { TLINE_FAIL(); } lpMatch = (LPTAPIMSG) AllocFromTestHeap (sizeof(TAPIMSG)); lpMatch->dwMsg = LINE_PROXYREQUEST; // lpMatch->dwParam1 = (DWORD) lpProxyBuffer; lpMatch->dwParam2 = 0; lpMatch->dwParam3 = 0; lpMatch->dwFlags = TAPIMSG_DWMSG; lret = FindReceivedMsgs(&lpTapiMsg, lpMatch, FALSE); TapiLogDetail(DBUG_SHOW_DETAIL,"##lret = %lx", lret); if(lret == 1) { lpTapiLineTestInfo->lpProxyRequest = (LPLINEPROXYREQUEST) lpTapiMsg->dwParam1; lpTapiLineTestInfo->lpProxyRequest->GetAgentCaps.AgentCaps.dwNeededSize = lpTapiLineTestInfo->lpProxyRequest->GetAgentCaps.AgentCaps.dwTotalSize; lpTapiLineTestInfo->lpProxyRequest->GetAgentCaps.AgentCaps.dwFeatures = LINEAGENTFEATURE_GETAGENTGROUP; lpTapiLineTestInfo->dwResult = 0; TapiShowProxyBuffer(lpTapiLineTestInfo->lpProxyRequest); if (! DoLineProxyResponse(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } AddMessage (LINE_REPLY, 0, 0, 0, lpTapiLineTestInfo->dwResult, 0, TAPIMSG_DWMSG | TAPIMSG_DWPARAM2); WaitForAllMessages(); } fTestPassed = ShowTestCase(fTestPassed); TapiLogDetail( DBUG_SHOW_DETAIL, "## dwTotalSize = %lx, dwNeededSize = %lx, dwFeatures = %lx", lpTapiLineTestInfo->lpAgentCaps->dwTotalSize, lpTapiLineTestInfo->lpAgentCaps->dwNeededSize, lpTapiLineTestInfo->lpAgentCaps->dwFeatures); if(! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Shutdown // if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } FreeTestHeap(); // =================================================================== // =================================================================== // // 2. Test Case: Bad hLineApp. // // =================================================================== // =================================================================== TapiLineTestInit(); lpTapiLineTestInfo = GetLineTestInfo(); fTestPassed = TRUE; // // Initialize a line app // lpTapiLineTestInfo->lpLineInitializeExParams = (LPLINEINITIALIZEEXPARAMS) AllocFromTestHeap ( sizeof(LINEINITIALIZEEXPARAMS)); lpTapiLineTestInfo->lpLineInitializeExParams->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS); lpTapiLineTestInfo->lpLineInitializeExParams->dwOptions = LINEINITIALIZEEXOPTION_USEHIDDENWINDOW; lpTapiLineTestInfo->lpdwAPIVersion = &lpTapiLineTestInfo->dwAPIVersion; lpTapiLineTestInfo->dwAPIVersion = TAPI_VERSION2_0; if(! DoLineInitializeEx (lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } lpTapiLineTestInfo->dwDeviceID = (*(lpTapiLineTestInfo->lpdwNumDevs) == 0 ? 0 : *(lpTapiLineTestInfo->lpdwNumDevs)-1); if(IsUNIMDMLineDevice(lpTapiLineTestInfo)) { TapiLogDetail( DBUG_SHOW_DETAIL, "## lineGetAgentActivityList unimodem didn't support"); return fTestPassed; } lpTapiLineTestInfo->dwAPIVersion = HIGH_APIVERSION; lpTapiLineTestInfo->dwExtLowVersion = LOW_APIVERSION; lpTapiLineTestInfo->dwExtHighVersion = HIGH_APIVERSION; lpTapiLineTestInfo->lpdwExtVersion = &lpTapiLineTestInfo->dwExtVersion; // // Negotiate the API Ext Version // if (! DoLineNegotiateExtVersion(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Open a line // lpTapiLineTestInfo->dwMediaModes = LINEMEDIAMODE_DATAMODEM; lpTapiLineTestInfo->dwPrivileges = LINECALLPRIVILEGE_OWNER | LINEOPENOPTION_PROXY; lpTapiLineTestInfo->lpCallParams = (LPLINECALLPARAMS) AllocFromTestHeap ( sizeof(LINECALLPARAMS) + sizeof(DWORD)); lpTapiLineTestInfo->lpCallParams->dwTotalSize = sizeof(LINECALLPARAMS) + sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificSize = sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset = sizeof(LINECALLPARAMS); lpRequestBuf = (LPDWORD) (((LPBYTE)lpTapiLineTestInfo->lpCallParams) + lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset); *lpRequestBuf = LINEPROXYREQUEST_GETAGENTCAPS; if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad hLineApp", dwTestCase+1); // // Get the line device capabilities // lpTapiLineTestInfo->lpAgentCaps = (LPLINEAGENTCAPS) AllocFromTestHeap( sizeof(LINEAGENTCAPS) ); lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = sizeof(LINEAGENTCAPS); lpTapiLineTestInfo->dwAppAPIVersion = TAPI_VERSION2_0; // // save previous hLineApp // lpTapiLineTestInfo->hLineApp_Orig = lpTapiLineTestInfo->hLineApp1; // // Test invalid handles // for(i = 0; i < NUMINVALIDHANDLES; i++) { *lpTapiLineTestInfo->lphLineApp = (HLINEAPP)gdwInvalidHandles[i]; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_INVALAPPHANDLE, FALSE)) { TLINE_FAIL(); } } // // Reset hLine // lpTapiLineTestInfo->hLineApp1 = lpTapiLineTestInfo->hLineApp_Orig; fTestPassed = ShowTestCase(fTestPassed); if(! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Shutdown // if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } FreeTestHeap(); // =================================================================== // =================================================================== // // 3. Test Case: Bad dwDeviceID. // // =================================================================== // =================================================================== TapiLineTestInit(); lpTapiLineTestInfo = GetLineTestInfo(); fTestPassed = TRUE; // // Initialize a line app // lpTapiLineTestInfo->lpLineInitializeExParams = (LPLINEINITIALIZEEXPARAMS) AllocFromTestHeap ( sizeof(LINEINITIALIZEEXPARAMS)); lpTapiLineTestInfo->lpLineInitializeExParams->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS); lpTapiLineTestInfo->lpLineInitializeExParams->dwOptions = LINEINITIALIZEEXOPTION_USEHIDDENWINDOW; lpTapiLineTestInfo->lpdwAPIVersion = &lpTapiLineTestInfo->dwAPIVersion; lpTapiLineTestInfo->dwAPIVersion = TAPI_VERSION2_0; if(! DoLineInitializeEx (lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } lpTapiLineTestInfo->dwDeviceID = (*(lpTapiLineTestInfo->lpdwNumDevs) == 0 ? 0 : *(lpTapiLineTestInfo->lpdwNumDevs)-1); if(IsUNIMDMLineDevice(lpTapiLineTestInfo)) { TapiLogDetail( DBUG_SHOW_DETAIL, "## lineGetAgentActivityList unimodem didn't support"); return fTestPassed; } lpTapiLineTestInfo->dwAPIVersion = HIGH_APIVERSION; lpTapiLineTestInfo->dwExtLowVersion = LOW_APIVERSION; lpTapiLineTestInfo->dwExtHighVersion = HIGH_APIVERSION; lpTapiLineTestInfo->lpdwExtVersion = &lpTapiLineTestInfo->dwExtVersion; // // Negotiate the API Ext Version // if (! DoLineNegotiateExtVersion(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Open a line // lpTapiLineTestInfo->dwMediaModes = LINEMEDIAMODE_DATAMODEM; lpTapiLineTestInfo->dwPrivileges = LINECALLPRIVILEGE_OWNER | LINEOPENOPTION_PROXY; lpTapiLineTestInfo->lpCallParams = (LPLINECALLPARAMS) AllocFromTestHeap ( sizeof(LINECALLPARAMS) + sizeof(DWORD)); lpTapiLineTestInfo->lpCallParams->dwTotalSize = sizeof(LINECALLPARAMS) + sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificSize = sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset = sizeof(LINECALLPARAMS); lpRequestBuf = (LPDWORD) (((LPBYTE)lpTapiLineTestInfo->lpCallParams) + lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset); *lpRequestBuf = LINEPROXYREQUEST_GETAGENTCAPS; if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Get the line device capabilities // lpTapiLineTestInfo->lpAgentCaps = (LPLINEAGENTCAPS) AllocFromTestHeap( sizeof(LINEAGENTCAPS) ); lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = sizeof(LINEAGENTCAPS); lpTapiLineTestInfo->dwAppAPIVersion = TAPI_VERSION2_0; // // Bad dwDeviceID // TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad dwDeviceID=-1", dwTestCase+1); lpTapiLineTestInfo->dwDeviceID = (DWORD)-1; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_BADDEVICEID, FALSE)) { TLINE_FAIL(); } TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad dwDeviceID=dwNumDevs", dwTestCase+1); lpTapiLineTestInfo->dwDeviceID = *(lpTapiLineTestInfo->lpdwNumDevs); if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_BADDEVICEID, FALSE)) { TLINE_FAIL(); } fTestPassed = ShowTestCase(fTestPassed); if(! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Shutdown // if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } FreeTestHeap(); // =================================================================== // =================================================================== // // 4. Test Case: Bad dwAddressID. // // =================================================================== // =================================================================== TapiLineTestInit(); lpTapiLineTestInfo = GetLineTestInfo(); fTestPassed = TRUE; // // Initialize a line app // lpTapiLineTestInfo->lpLineInitializeExParams = (LPLINEINITIALIZEEXPARAMS) AllocFromTestHeap ( sizeof(LINEINITIALIZEEXPARAMS)); lpTapiLineTestInfo->lpLineInitializeExParams->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS); lpTapiLineTestInfo->lpLineInitializeExParams->dwOptions = LINEINITIALIZEEXOPTION_USEHIDDENWINDOW; lpTapiLineTestInfo->lpdwAPIVersion = &lpTapiLineTestInfo->dwAPIVersion; lpTapiLineTestInfo->dwAPIVersion = TAPI_VERSION2_0; if(! DoLineInitializeEx (lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } lpTapiLineTestInfo->dwDeviceID = (*(lpTapiLineTestInfo->lpdwNumDevs) == 0 ? 0 : *(lpTapiLineTestInfo->lpdwNumDevs)-1); if(IsUNIMDMLineDevice(lpTapiLineTestInfo)) { TapiLogDetail( DBUG_SHOW_DETAIL, "## lineGetAgentActivityList unimodem didn't support"); return fTestPassed; } lpTapiLineTestInfo->dwAPIVersion = HIGH_APIVERSION; lpTapiLineTestInfo->dwExtLowVersion = LOW_APIVERSION; lpTapiLineTestInfo->dwExtHighVersion = HIGH_APIVERSION; lpTapiLineTestInfo->lpdwExtVersion = &lpTapiLineTestInfo->dwExtVersion; // // Negotiate the API Ext Version // if (! DoLineNegotiateExtVersion(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Get lineDevCaps // lpTapiLineTestInfo->lpLineDevCaps = (LPLINEDEVCAPS) AllocFromTestHeap( sizeof(LINEDEVCAPS)); lpTapiLineTestInfo->lpLineDevCaps->dwTotalSize = sizeof(LINEDEVCAPS); if (! DoLineGetDevCaps(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Open a line // lpTapiLineTestInfo->dwMediaModes = LINEMEDIAMODE_DATAMODEM; lpTapiLineTestInfo->dwPrivileges = LINECALLPRIVILEGE_OWNER | LINEOPENOPTION_PROXY; lpTapiLineTestInfo->lpCallParams = (LPLINECALLPARAMS) AllocFromTestHeap ( sizeof(LINECALLPARAMS) + sizeof(DWORD)); lpTapiLineTestInfo->lpCallParams->dwTotalSize = sizeof(LINECALLPARAMS) + sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificSize = sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset = sizeof(LINECALLPARAMS); lpRequestBuf = (LPDWORD) (((LPBYTE)lpTapiLineTestInfo->lpCallParams) + lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset); *lpRequestBuf = LINEPROXYREQUEST_GETAGENTCAPS; if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Get the line device capabilities // lpTapiLineTestInfo->lpAgentCaps = (LPLINEAGENTCAPS) AllocFromTestHeap( sizeof(LINEAGENTCAPS) ); lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = sizeof(LINEAGENTCAPS); lpTapiLineTestInfo->dwAppAPIVersion = TAPI_VERSION2_0; // // Bad dwAddressID // TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad dwAddressID=-1", dwTestCase+1); lpTapiLineTestInfo->dwAddressID = (DWORD)-1; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_INVALADDRESSID, FALSE)) { TLINE_FAIL(); } TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad dwAddressID= dwNumAddress", dwTestCase+1); lpTapiLineTestInfo->dwAddressID = lpTapiLineTestInfo->lpLineDevCaps->dwNumAddresses; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_INVALADDRESSID, FALSE)) { TLINE_FAIL(); } fTestPassed = ShowTestCase(fTestPassed); if(! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Shutdown // if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } FreeTestHeap(); // =================================================================== // =================================================================== // // 5. Test Case: Bad dwAppAPIVersion. // // =================================================================== // =================================================================== TapiLineTestInit(); lpTapiLineTestInfo = GetLineTestInfo(); fTestPassed = TRUE; // // Initialize a line app // lpTapiLineTestInfo->lpLineInitializeExParams = (LPLINEINITIALIZEEXPARAMS) AllocFromTestHeap ( sizeof(LINEINITIALIZEEXPARAMS)); lpTapiLineTestInfo->lpLineInitializeExParams->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS); lpTapiLineTestInfo->lpLineInitializeExParams->dwOptions = LINEINITIALIZEEXOPTION_USEHIDDENWINDOW; lpTapiLineTestInfo->lpdwAPIVersion = &lpTapiLineTestInfo->dwAPIVersion; lpTapiLineTestInfo->dwAPIVersion = TAPI_VERSION2_0; if(! DoLineInitializeEx (lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } lpTapiLineTestInfo->dwDeviceID = (*(lpTapiLineTestInfo->lpdwNumDevs) == 0 ? 0 : *(lpTapiLineTestInfo->lpdwNumDevs)-1); if(IsUNIMDMLineDevice(lpTapiLineTestInfo)) { TapiLogDetail( DBUG_SHOW_DETAIL, "## lineGetAgentActivityList unimodem didn't support"); return fTestPassed; } lpTapiLineTestInfo->dwAPIVersion = HIGH_APIVERSION; lpTapiLineTestInfo->dwExtLowVersion = LOW_APIVERSION; lpTapiLineTestInfo->dwExtHighVersion = HIGH_APIVERSION; lpTapiLineTestInfo->lpdwExtVersion = &lpTapiLineTestInfo->dwExtVersion; // // Negotiate the API Ext Version // if (! DoLineNegotiateExtVersion(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Get lineDevCaps // lpTapiLineTestInfo->lpLineDevCaps = (LPLINEDEVCAPS) AllocFromTestHeap( sizeof(LINEDEVCAPS)); lpTapiLineTestInfo->lpLineDevCaps->dwTotalSize = sizeof(LINEDEVCAPS); if (! DoLineGetDevCaps(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Open a line // lpTapiLineTestInfo->dwMediaModes = LINEMEDIAMODE_DATAMODEM; lpTapiLineTestInfo->dwPrivileges = LINECALLPRIVILEGE_OWNER | LINEOPENOPTION_PROXY; lpTapiLineTestInfo->lpCallParams = (LPLINECALLPARAMS) AllocFromTestHeap ( sizeof(LINECALLPARAMS) + sizeof(DWORD)); lpTapiLineTestInfo->lpCallParams->dwTotalSize = sizeof(LINECALLPARAMS) + sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificSize = sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset = sizeof(LINECALLPARAMS); lpRequestBuf = (LPDWORD) (((LPBYTE)lpTapiLineTestInfo->lpCallParams) + lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset); *lpRequestBuf = LINEPROXYREQUEST_GETAGENTCAPS; if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad dwAPIVersion(high)", dwTestCase+1); // // Get the line device capabilities // lpTapiLineTestInfo->lpAgentCaps = (LPLINEAGENTCAPS) AllocFromTestHeap( sizeof(LINEAGENTCAPS) ); lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = sizeof(LINEAGENTCAPS); // // // Bad dwAPIVersion // // lpTapiLineTestInfo->dwAppAPIVersion = WAYTOOHIGH_APIVERSION; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_INCOMPATIBLEAPIVERSION, FALSE)) { TLINE_FAIL(); } fTestPassed = ShowTestCase(fTestPassed); TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad dwAPIVersion(low)", dwTestCase+1); lpTapiLineTestInfo->dwAppAPIVersion = TOOLOW_APIVERSION; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_INCOMPATIBLEAPIVERSION, FALSE)) { TLINE_FAIL(); } fTestPassed = ShowTestCase(fTestPassed); if(! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Shutdown // if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } FreeTestHeap(); // =================================================================== // =================================================================== // // 6. Test Case: Bad lpAgentCaps. // // =================================================================== // =================================================================== TapiLineTestInit(); lpTapiLineTestInfo = GetLineTestInfo(); fTestPassed = TRUE; // // Initialize a line app // lpTapiLineTestInfo->lpLineInitializeExParams = (LPLINEINITIALIZEEXPARAMS) AllocFromTestHeap ( sizeof(LINEINITIALIZEEXPARAMS)); lpTapiLineTestInfo->lpLineInitializeExParams->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS); lpTapiLineTestInfo->lpLineInitializeExParams->dwOptions = LINEINITIALIZEEXOPTION_USEHIDDENWINDOW; lpTapiLineTestInfo->lpdwAPIVersion = &lpTapiLineTestInfo->dwAPIVersion; lpTapiLineTestInfo->dwAPIVersion = TAPI_VERSION2_0; if(! DoLineInitializeEx (lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } lpTapiLineTestInfo->dwDeviceID = (*(lpTapiLineTestInfo->lpdwNumDevs) == 0 ? 0 : *(lpTapiLineTestInfo->lpdwNumDevs)-1); if(IsUNIMDMLineDevice(lpTapiLineTestInfo)) { TapiLogDetail( DBUG_SHOW_DETAIL, "## lineGetAgentActivityList unimodem didn't support"); return fTestPassed; } lpTapiLineTestInfo->dwAPIVersion = HIGH_APIVERSION; lpTapiLineTestInfo->dwExtLowVersion = LOW_APIVERSION; lpTapiLineTestInfo->dwExtHighVersion = HIGH_APIVERSION; lpTapiLineTestInfo->lpdwExtVersion = &lpTapiLineTestInfo->dwExtVersion; // // Negotiate the API Ext Version // if (! DoLineNegotiateExtVersion(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Get lineDevCaps // lpTapiLineTestInfo->lpLineDevCaps = (LPLINEDEVCAPS) AllocFromTestHeap( sizeof(LINEDEVCAPS)); lpTapiLineTestInfo->lpLineDevCaps->dwTotalSize = sizeof(LINEDEVCAPS); if (! DoLineGetDevCaps(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Open a line // lpTapiLineTestInfo->dwMediaModes = LINEMEDIAMODE_DATAMODEM; lpTapiLineTestInfo->dwPrivileges = LINECALLPRIVILEGE_OWNER | LINEOPENOPTION_PROXY; lpTapiLineTestInfo->lpCallParams = (LPLINECALLPARAMS) AllocFromTestHeap ( sizeof(LINECALLPARAMS) + sizeof(DWORD)); lpTapiLineTestInfo->lpCallParams->dwTotalSize = sizeof(LINECALLPARAMS) + sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificSize = sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset = sizeof(LINECALLPARAMS); lpRequestBuf = (LPDWORD) (((LPBYTE)lpTapiLineTestInfo->lpCallParams) + lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset); *lpRequestBuf = LINEPROXYREQUEST_GETAGENTCAPS; if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad lpAgentCaps", dwTestCase+1); // // // Bad lpAgentCaps // // for(i=0; i < NUMINVALIDPOINTERS; i++) { lpTapiLineTestInfo->lpAgentCaps = (LPLINEAGENTCAPS)gdwInvalidPointers[i]; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_INVALPOINTER, FALSE)) { TLINE_FAIL(); } } fTestPassed = ShowTestCase(fTestPassed); if(! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Shutdown // if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } FreeTestHeap(); // =================================================================== // =================================================================== // // 7. Test Case: Bad lpAgentCaps->dwTotalSize. // // =================================================================== // =================================================================== TapiLineTestInit(); lpTapiLineTestInfo = GetLineTestInfo(); fTestPassed = TRUE; // // Initialize a line app // lpTapiLineTestInfo->lpLineInitializeExParams = (LPLINEINITIALIZEEXPARAMS) AllocFromTestHeap ( sizeof(LINEINITIALIZEEXPARAMS)); lpTapiLineTestInfo->lpLineInitializeExParams->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS); lpTapiLineTestInfo->lpLineInitializeExParams->dwOptions = LINEINITIALIZEEXOPTION_USEHIDDENWINDOW; lpTapiLineTestInfo->lpdwAPIVersion = &lpTapiLineTestInfo->dwAPIVersion; lpTapiLineTestInfo->dwAPIVersion = TAPI_VERSION2_0; if(! DoLineInitializeEx (lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } lpTapiLineTestInfo->dwDeviceID = (*(lpTapiLineTestInfo->lpdwNumDevs) == 0 ? 0 : *(lpTapiLineTestInfo->lpdwNumDevs)-1); if(IsUNIMDMLineDevice(lpTapiLineTestInfo)) { TapiLogDetail( DBUG_SHOW_DETAIL, "## lineGetAgentActivityList unimodem didn't support"); return fTestPassed; } lpTapiLineTestInfo->dwAPIVersion = HIGH_APIVERSION; lpTapiLineTestInfo->dwExtLowVersion = LOW_APIVERSION; lpTapiLineTestInfo->dwExtHighVersion = HIGH_APIVERSION; lpTapiLineTestInfo->lpdwExtVersion = &lpTapiLineTestInfo->dwExtVersion; // // Negotiate the API Ext Version // if (! DoLineNegotiateExtVersion(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Get lineDevCaps // lpTapiLineTestInfo->lpLineDevCaps = (LPLINEDEVCAPS) AllocFromTestHeap( sizeof(LINEDEVCAPS)); lpTapiLineTestInfo->lpLineDevCaps->dwTotalSize = sizeof(LINEDEVCAPS); if (! DoLineGetDevCaps(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Open a line // lpTapiLineTestInfo->dwMediaModes = LINEMEDIAMODE_DATAMODEM; lpTapiLineTestInfo->dwPrivileges = LINECALLPRIVILEGE_OWNER | LINEOPENOPTION_PROXY; lpTapiLineTestInfo->lpCallParams = (LPLINECALLPARAMS) AllocFromTestHeap ( sizeof(LINECALLPARAMS) + sizeof(DWORD)); lpTapiLineTestInfo->lpCallParams->dwTotalSize = sizeof(LINECALLPARAMS) + sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificSize = sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset = sizeof(LINECALLPARAMS); lpRequestBuf = (LPDWORD) (((LPBYTE)lpTapiLineTestInfo->lpCallParams) + lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset); *lpRequestBuf = LINEPROXYREQUEST_GETAGENTCAPS; if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Get the line device capabilities // lpTapiLineTestInfo->lpAgentCaps = (LPLINEAGENTCAPS) AllocFromTestHeap( sizeof(LINEAGENTCAPS) ); // // // Bad lpAgentCaps->dwTotalSize // // TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad lpAgentCaps->dwTotalSize", dwTestCase+1); /* lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = 0; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_STRUCTURETOOSMALL, FALSE)) { TLINE_FAIL(); } TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad lpAgentCaps->dwTotalSize=fixed_size-1", dwTestCase+1); lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = sizeof(LINEAGENTCAPS)-1; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_STRUCTURETOOSMALL, FALSE)) { TLINE_FAIL(); } TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Bad lpAgentCaps->dwTotalSize=real big", dwTestCase+1); lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = 0x7FFFFFFF; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_INVALPOINTER, FALSE)) { TLINE_FAIL(); } */ for (n = 0; n < NUMTOTALSIZES; n++) { lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = dwTotalSizes[n]; if(dwTotalSizes[n] < dwFixedSize) lExpected = LINEERR_STRUCTURETOOSMALL; else lExpected = LINEERR_INVALPOINTER; TapiLogDetail( DBUG_SHOW_DETAIL, "dwTotalSize = %lx", dwTotalSizes[n]); if (! DoLineGetAgentCaps(lpTapiLineTestInfo, lExpected, TRUE)) { TLINE_FAIL(); } } fTestPassed = ShowTestCase(fTestPassed); lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = dwFixedSize; if(! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Shutdown // if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } FreeTestHeap(); // =================================================================== // =================================================================== // // 8. Test Case: Open with no Proxy request. // // =================================================================== // =================================================================== TapiLineTestInit(); lpTapiLineTestInfo = GetLineTestInfo(); fTestPassed = TRUE; // // Initialize a line app // lpTapiLineTestInfo->lpLineInitializeExParams = (LPLINEINITIALIZEEXPARAMS) AllocFromTestHeap ( sizeof(LINEINITIALIZEEXPARAMS)); lpTapiLineTestInfo->lpLineInitializeExParams->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS); lpTapiLineTestInfo->lpLineInitializeExParams->dwOptions = LINEINITIALIZEEXOPTION_USEHIDDENWINDOW; lpTapiLineTestInfo->lpdwAPIVersion = &lpTapiLineTestInfo->dwAPIVersion; lpTapiLineTestInfo->dwAPIVersion = TAPI_VERSION2_0; if(! DoLineInitializeEx (lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } lpTapiLineTestInfo->dwDeviceID = (*(lpTapiLineTestInfo->lpdwNumDevs) == 0 ? 0 : *(lpTapiLineTestInfo->lpdwNumDevs)-1); if(IsUNIMDMLineDevice(lpTapiLineTestInfo)) { TapiLogDetail( DBUG_SHOW_DETAIL, "## lineGetAgentActivityList unimodem didn't support"); return fTestPassed; } lpTapiLineTestInfo->dwAPIVersion = HIGH_APIVERSION; lpTapiLineTestInfo->dwExtLowVersion = LOW_APIVERSION; lpTapiLineTestInfo->dwExtHighVersion = HIGH_APIVERSION; lpTapiLineTestInfo->lpdwExtVersion = &lpTapiLineTestInfo->dwExtVersion; // // Negotiate the API Ext Version // if (! DoLineNegotiateExtVersion(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Open a line // lpTapiLineTestInfo->dwMediaModes = LINEMEDIAMODE_DATAMODEM; lpTapiLineTestInfo->dwPrivileges = LINECALLPRIVILEGE_OWNER; lpTapiLineTestInfo->lpCallParams = (LPLINECALLPARAMS) AllocFromTestHeap ( sizeof(LINECALLPARAMS) + sizeof(DWORD)); lpTapiLineTestInfo->lpCallParams->dwTotalSize = sizeof(LINECALLPARAMS) + sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificSize = sizeof(DWORD); lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset = sizeof(LINECALLPARAMS); lpRequestBuf = (LPDWORD) (((LPBYTE)lpTapiLineTestInfo->lpCallParams) + lpTapiLineTestInfo->lpCallParams->dwDevSpecificOffset); *lpRequestBuf = LINEPROXYREQUEST_GETAGENTCAPS; if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } TapiLogDetail(DBUG_SHOW_PASS, ">>Test Case %ld: Open with no proxy request", dwTestCase+1); // // Get the line device capabilities // lpTapiLineTestInfo->lpAgentCaps = (LPLINEAGENTCAPS) AllocFromTestHeap( sizeof(LINEAGENTCAPS) ); lpTapiLineTestInfo->lpAgentCaps->dwTotalSize = sizeof(LINEAGENTCAPS); lpTapiLineTestInfo->dwAppAPIVersion = TAPI_VERSION2_0; if (! DoLineGetAgentCaps(lpTapiLineTestInfo, LINEERR_OPERATIONUNAVAIL, TRUE)) { TLINE_FAIL(); } fTestPassed = ShowTestCase(fTestPassed); if(! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } // // Shutdown // if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS)) { TLINE_FAIL(); } FreeTestHeap(); // // +----------------------edit above this line------------------------- // TapiLogDetail( DBUG_SHOW_PASS, "@@ LineGetAgentCaps: Total Test Case = %ld, Passed = %ld, Failed = %ld", dwTestCase, dwTestCasePassed, dwTestCaseFailed); TapiLogDetail( DBUG_SHOW_PASS, "@@ Total Test Case = %ld, Passed = %ld, Failed = %ld", dwglTestCase, dwglTestCasePassed, dwglTestCaseFailed); TapiLogDetail( DBUG_SHOW_PASS, ">>>>>>>> End testing LineGetAgentCaps <<<<<<<<"); if(dwTestCaseFailed > 0) fTestPassed = FALSE; return fTestPassed; }