Windows NT 4.0 source code leak
 
 
 
 
 
 

949 lines
26 KiB

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
itlsas.c
Abstract:
This module contains the test functions for lineSetAgentState
Author:
Xiao Ying Ding (XiaoD) 23-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 ALLAGENTSTATE (LINEAGENTSTATE_LOGGEDOFF | \
LINEAGENTSTATE_NOTREADY | \
LINEAGENTSTATE_READY | \
LINEAGENTSTATE_BUSYACD | \
LINEAGENTSTATE_BUSYINCOMING | \
LINEAGENTSTATE_BUSYOUTBOUND | \
LINEAGENTSTATE_BUSYOTHER | \
LINEAGENTSTATE_WORKINGAFTERCALL | \
LINEAGENTSTATE_UNKNOWN | \
LINEAGENTSTATE_UNAVAIL)
// lineSetAgentState
//
// The following tests are made:
//
// Tested Notes
// -------------------------------------------------------------------------
// 1. Go/No-Go test
// 2. Bad hLine
// 3. BitVectorParamErrorTest for dwAgentState
// 4. BitVectorParamErrorTest for dwNextAgentState
// 5. BitVectorParamValidTest for dwAgentState
// 6. BitVectorParamValidTest for dwNextAgentState
//
// * = Stand-alone test case
//
//
BOOL TestLineSetAgentState(BOOL fQuietMode, BOOL fStandAlone)
{
LPTAPILINETESTINFO lpTapiLineTestInfo;
INT i;
BOOL fTestPassed = TRUE;
LPDWORD lpRequestBuf;
LONG lret;
LPTAPIMSG lpTapiMsg = NULL;
LPTAPIMSG lpMatch;
dwTestCasePassed = 0;
dwTestCaseFailed = 0;
dwTestCase = 0;
OutputTAPIDebugInfo(
DBUG_SHOW_PASS,
"\n***************************************************************");
OutputTAPIDebugInfo(
DBUG_SHOW_PASS,
">> Test LineSetAgentState");
// ===================================================================
// ===================================================================
//
// 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,
"## LineSetAgentState 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_SETAGENTSTATE;
if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
TapiLogDetail(DBUG_SHOW_PASS,
">> Test Case %ld: Go/No-Go Test",
dwTestCase+1);
//
// Set the line device capabilities
//
lpTapiLineTestInfo->dwAddressID = 0;
lpTapiLineTestInfo->dwAgentState = LINEAGENTSTATE_READY;
lpTapiLineTestInfo->dwNextAgentState = LINEAGENTSTATE_READY;
if (! DoLineSetAgentState(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->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);
if (! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
//
// Shutdown
//
if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
FreeTestHeap();
// ===================================================================
// ===================================================================
//
// 2. Test Case: Bad hLine.
//
// ===================================================================
// ===================================================================
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,
"## LineSetAgentState 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_SETAGENTSTATE;
if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
TapiLogDetail(DBUG_SHOW_PASS,
">> Test Case %ld: Bad hLine",
dwTestCase+1);
//
// Set the line device capabilities
//
lpTapiLineTestInfo->dwAddressID = 0;
lpTapiLineTestInfo->dwAgentState = LINEAGENTSTATE_READY;
lpTapiLineTestInfo->dwNextAgentState = LINEAGENTSTATE_READY;
//
// save previous hLine
//
lpTapiLineTestInfo->hLine_Orig = lpTapiLineTestInfo->hLine1;
//
// Test invalid handles
//
for(i = 0; i < NUMINVALIDHANDLES; i++)
{
*lpTapiLineTestInfo->lphLine = (HLINE)gdwInvalidHandles[i];
if (! DoLineSetAgentState(lpTapiLineTestInfo,
LINEERR_INVALLINEHANDLE,
FALSE))
{
TLINE_FAIL();
}
}
//
// Reset hLine
//
lpTapiLineTestInfo->hLine1 = lpTapiLineTestInfo->hLine_Orig;
fTestPassed = ShowTestCase(fTestPassed);
if (! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
//
// Shutdown
//
if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
FreeTestHeap();
// ===================================================================
// ===================================================================
//
// 3. Test Case: BitVectorParamErrorTest for dwAgentState.
//
// ===================================================================
// ===================================================================
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,
"## LineSetAgentState 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_SETAGENTSTATE;
if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
TapiLogDetail(DBUG_SHOW_PASS,
">> Test Case %ld:BitVectorParamErrorTest for dwAgentState",
dwTestCase+1);
//
// Set the line device capabilities
//
lpTapiLineTestInfo->dwAddressID = 0;
lpTapiLineTestInfo->dwAgentState = 0;
lpTapiLineTestInfo->dwNextAgentState = LINEAGENTSTATE_READY;
//
// BitVectorParamErrorTest for dwAgentState
//
if(! TestInvalidBitFlagsAsy(
lpTapiLineTestInfo,
DoLineSetAgentState,
(LPDWORD) &lpTapiLineTestInfo->dwAgentState,
LINEERR_INVALAGENTSTATE,
FIELDTYPE_NA,
FIELDTYPE_MUTEX,
FIELDSIZE_16,
ALLAGENTSTATE,
~dwBitVectorMasks[(int) FIELDSIZE_16],
0x00000000,
0xffffffff,
FALSE
))
{
TLINE_FAIL();
}
fTestPassed = ShowTestCase(fTestPassed);
if (! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
//
// Shutdown
//
if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
FreeTestHeap();
// ===================================================================
// ===================================================================
//
// 4. Test Case: BitVectorParamErrorTest for dwNextAgentState.
//
// ===================================================================
// ===================================================================
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,
"## LineSetAgentState 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_SETAGENTSTATE;
if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
TapiLogDetail(DBUG_SHOW_PASS,
">> Test Case %ld:BitVectorParamErrorTest for dwNextAgentState",
dwTestCase+1);
//
// Set the line device capabilities
//
lpTapiLineTestInfo->dwAddressID = 0;
lpTapiLineTestInfo->dwAgentState = LINEAGENTSTATE_READY;
lpTapiLineTestInfo->dwNextAgentState = 0;
//
// BitVectorParamErrorTest for dwNextAgentState
//
if(! TestInvalidBitFlagsAsy(
lpTapiLineTestInfo,
DoLineSetAgentState,
(LPDWORD) &lpTapiLineTestInfo->dwNextAgentState,
LINEERR_INVALAGENTSTATE,
FIELDTYPE_NA,
FIELDTYPE_MUTEX,
FIELDSIZE_16,
ALLAGENTSTATE,
~dwBitVectorMasks[(int) FIELDSIZE_16],
0x00000000,
0xffffffff,
FALSE
))
{
TLINE_FAIL();
}
fTestPassed = ShowTestCase(fTestPassed);
if (! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
//
// Shutdown
//
if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
FreeTestHeap();
// ===================================================================
// ===================================================================
//
// 5. Test Case: BitVectorParamValidTest for dwAgentState.
//
// ===================================================================
// ===================================================================
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,
"## LineSetAgentState 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_SETAGENTSTATE;
if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
TapiLogDetail(DBUG_SHOW_PASS,
">> Test Case %ld:BitVectorParamValidTest for dwAgentState",
dwTestCase+1);
//
// Set the line device capabilities
//
lpTapiLineTestInfo->dwAddressID = 0;
lpTapiLineTestInfo->dwAgentState = 0;
lpTapiLineTestInfo->dwNextAgentState = LINEAGENTSTATE_READY;
//
// BitVectorParamValidTest for dwAgentState
//
if(! TestValidBitFlagsAsy(
lpTapiLineTestInfo,
DoLineSetAgentState,
(LPDWORD) &lpTapiLineTestInfo->dwAgentState,
FIELDTYPE_MUTEX,
FIELDTYPE_MUTEX,
FIELDSIZE_32,
ALLAGENTSTATE,
~dwBitVectorMasks[(int) FIELDSIZE_32],
0x00000000,
0x00000000,
TRUE
))
{
TLINE_FAIL();
}
fTestPassed = ShowTestCase(fTestPassed);
if (! DoLineClose(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
//
// Shutdown
//
if (! DoLineShutdown(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
FreeTestHeap();
// ===================================================================
// ===================================================================
//
// 6. Test Case: BitVectorParamValidTest for dwNextAgentState.
//
// ===================================================================
// ===================================================================
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,
"## LineSetAgentState 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_SETAGENTSTATE;
if (! DoLineOpen(lpTapiLineTestInfo, TAPISUCCESS))
{
TLINE_FAIL();
}
TapiLogDetail(DBUG_SHOW_PASS,
">> Test Case %ld:BitVectorParamValidTest for dwNextAgentState",
dwTestCase+1);
//
// Set the line device capabilities
//
lpTapiLineTestInfo->dwAddressID = 0;
lpTapiLineTestInfo->dwAgentState = LINEAGENTSTATE_READY;
lpTapiLineTestInfo->dwNextAgentState = 0;
//
// BitVectorParamValidTest for dwNextAgentState
//
if(! TestValidBitFlagsAsy(
lpTapiLineTestInfo,
DoLineSetAgentState,
(LPDWORD) &lpTapiLineTestInfo->dwNextAgentState,
FIELDTYPE_MUTEX,
FIELDTYPE_MUTEX,
FIELDSIZE_32,
ALLAGENTSTATE,
~dwBitVectorMasks[(int) FIELDSIZE_32],
0x00000000,
0x00000000,
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,
"@@ LineSetAgentState: 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 LineSetAgentState <<<<<<<<");
if(dwTestCaseFailed > 0)
fTestPassed = FALSE;
return fTestPassed;
}