📄 cexfunctiontester.cpp
字号:
CTokenReader reader;
reader.ReadTokenList(iList, "int i[");
TEST_RUN( ret = pObj->ParseOneParameter(iList) );
reader.ClearTokenList(iList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [10] [正常] [2006-9-23 9:37:58]
BVTEST_BEGIN_1(O,CTokenList,iList,R,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
TEST_RUN( ret = pObj->ParseOneParameter(iList) );
//TEST_ASSERT();
BVTEST_END(O,1)
//$$ [11] [自动] [2006-9-18 19:42:0]
//$$CASE_END(ParseOneParameter_CTokenListR())
TEST_RATE(1000);
TEST_END();
}
//$$ParseOneParameter_CTokenListR()
void CExFunctionTester::GetPrototype_CStringR()
{
TEST_BEGIN(CExFunction::GetPrototype(CString&));
//$$CASE_BEGIN(GetPrototype_CStringR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CString oPrototype;
CTokenReader reader;
CTokenList list;
reader.ReadTokenList(list, "static int MyFunc(int i, int j)");
CExFunction::ParseDeclare(list, TRIM_PRIVATE, *pObj);
TEST_RUN( pObj->GetPrototype(oPrototype) );
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-18 20:35:55]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CString oPrototype;
CTokenReader reader;
CTokenList list;
reader.ReadTokenList(list, "const int* MyFunc(int i, int j)");
CExFunction::ParseDeclare(list, TRIM_PRIVATE, *pObj);
TEST_RUN( pObj->GetPrototype(oPrototype) );
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-9-19 16:27:30]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CString oPrototype;
CTokenReader reader;
CTokenList list;
reader.ReadTokenList(list, "virtual int* MyFunc(int i, int j)");
CExFunction::ParseDeclare(list, TRIM_PRIVATE, *pObj);
TEST_RUN( pObj->GetPrototype(oPrototype) );
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-9-19 16:35:57]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CString oPrototype;
CTokenReader reader;
CTokenList list;
reader.ReadTokenList(list, "static int* MyFunc(int i, int j)");
CExFunction::ParseDeclare(list, TRIM_PRIVATE, *pObj);
TEST_RUN( pObj->GetPrototype(oPrototype) );
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [4] [正常] [2006-9-19 16:36:47]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CString oPrototype;
CTokenReader reader;
CTokenList list;
reader.ReadTokenList(list, "const int* MyFunc(int i[10], int j)");
CExFunction::ParseDeclare(list, TRIM_PRIVATE, *pObj);
TEST_RUN( pObj->GetPrototype(oPrototype) );
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [5] [正常] [2006-9-19 17:40:16]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CString oPrototype;
CTokenReader reader;
CTokenList list;
reader.ReadTokenList(list, "const int* MyFunc(int i=10, int j)");
CExFunction::ParseDeclare(list, TRIM_PRIVATE, *pObj);
TEST_RUN( pObj->GetPrototype(oPrototype) );
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [6] [正常] [2006-9-19 17:50:19]
BVTEST_BEGIN_1(O,CString,oPrototype,R,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
TEST_RUN( pObj->GetPrototype(oPrototype) );
//TEST_ASSERT();
BVTEST_END(O,1)
//$$ [7] [自动] [2006-9-18 20:35:55]
//$$CASE_END(GetPrototype_CStringR())
TEST_RATE(1000);
TEST_END();
}
//$$GetPrototype_CStringR()
void CExFunctionTester::ParseTail_CTokenListR_CExFunctionR()
{
TEST_BEGIN(CExFunction::ParseTail(CTokenList&,CExFunction&));
//$$CASE_BEGIN(ParseTail_CTokenListR_CExFunctionR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList ;
CTokenReader reader;
reader.ReadTokenList(iList, " const");
CExFunction oFunc ;
TEST_RUN( pObj->ParseTail(iList, oFunc) );
TEST_ASSERT( ISTRIM(oFunc.mTrim, CONST) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-19 17:51:57]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, " =0");
CExFunction oFunc;
TEST_RUN( pObj->ParseTail(iList, oFunc) );
TEST_ASSERT( ISTRIM(oFunc.mTrim, PUREVIRTUAL) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-9-19 17:59:13]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, " ");
CExFunction oFunc;
TEST_RUN( pObj->ParseTail(iList, oFunc) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-9-19 18:0:3]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, " id");
CExFunction oFunc;
TEST_RUN( pObj->ParseTail(iList, oFunc) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [4] [正常] [2006-9-19 18:0:17]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, " ==0");
CExFunction oFunc;
TEST_RUN( pObj->ParseTail(iList, oFunc) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [5] [正常] [2006-9-19 18:0:31]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, " =");
CExFunction oFunc;
TEST_RUN( pObj->ParseTail(iList, oFunc) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [6] [正常] [2006-9-19 18:0:59]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, " =1");
CExFunction oFunc;
TEST_RUN( pObj->ParseTail(iList, oFunc) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [7] [正常] [2006-9-19 18:1:16]
//??BVTEST_BEGIN_2(O,CTokenList,iList,R,0,CExFunction,oFunc,R,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
//??TEST_RUN( pObj->ParseTail(iList, oFunc) );
//TEST_ASSERT();
//??BVTEST_END(O,2)
//$$ [8] [自动] [2006-9-19 17:51:57]
//$$CASE_END(ParseTail_CTokenListR_CExFunctionR())
TEST_RATE(1000);
TEST_END();
}
//$$ParseTail_CTokenListR_CExFunctionR()
void CExFunctionTester::ParseFunction_CTokenListR_UINT_BOOL_CTokenListP_POSITIONP_BOOL()
{
TEST_BEGIN(CExFunction::ParseFunction(CTokenList&,UINT,BOOL,CTokenList*,POSITION*,BOOL));
CExFunction* ret;
//$$CASE_BEGIN(ParseFunction_CTokenListR_UINT_BOOL_CTokenListP_POSITIONP_BOOL())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, "int CMyClass::Add(int i, int* pj);");
UINT iAccessTrim = TRIM_PUBLIC;
BOOL iDefinition = FALSE;
CTokenList* iopSrcList = &iList;
POSITION iopPos = iList.GetHeadPosition();
BOOL iIsInType = TRUE;
TEST_RUN( ret = pObj->ParseFunction(iList, iAccessTrim, iDefinition, iopSrcList, &iopPos, iIsInType) );
TEST_ASSERT( ret->GetName() == "Add" );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-21 17:24:42]
//??BVTEST_BEGIN_6(O,CTokenList,iList,R,0,UINT,iAccessTrim,R,0,BOOL,iDefinition,R,0,CTokenList,iopSrcList,P,1,POSITION,iopPos,P,0,BOOL,iIsInType,R,1)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
//??TEST_RUN( ret = pObj->ParseFunction(iList, iAccessTrim, iDefinition, iopSrcList, iopPos, iIsInType) );
//TEST_ASSERT();
//??BVTEST_END(O,6)
//$$ [2] [自动] [2006-9-21 17:24:42]
//$$CASE_END(ParseFunction_CTokenListR_UINT_BOOL_CTokenListP_POSITIONP_BOOL())
TEST_RATE(1000);
TEST_END();
}
//$$ParseFunction_CTokenListR_UINT_BOOL_CTokenListP_POSITIONP_BOOL()
void CExFunctionTester::ParseOneParameter2_CTokenListR()
{
TEST_BEGIN(CExFunction::ParseOneParameter2(CTokenList&));
PARAMETER* ret;
//$$CASE_BEGIN(ParseOneParameter2_CTokenListR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
//为了模拟实际的情况,采用两个列表,这是为了避免测试代码产生内存泄露;
CTokenList iList, list;
CTokenReader reader;
reader.ReadTokenList(list, "int i=0"); //记号序列保存到list;
POSITION pos = list.GetHeadPosition();
while(pos) iList.AddTail(list.GetNext(pos)); //将list的拷贝作为参数;
TEST_RUN( ret = pObj->ParseOneParameter2(iList) );
TEST_ASSERT( ret->type == "int" );
TEST_ASSERT( ret->name == "i" );
TEST_ASSERT( ret->array == "" );
TEST_ASSERT( ret->defVal == "0" );
delete ret; //!
reader.ClearTokenList(list); //! 删除list,以保证完整删除所有记号指针
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-18 19:42:0]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList, list;
CTokenReader reader;
reader.ReadTokenList(list, "int i=GetAge(\"name\")");
POSITION pos = list.GetHeadPosition();
while(pos) iList.AddTail(list.GetNext(pos));
TEST_RUN( ret = pObj->ParseOneParameter2(iList) );
TEST_ASSERT( ret->type == "int" );
TEST_ASSERT( ret->name == "i" );
TEST_ASSERT( ret->array == "" );
LPCTSTR defVal = "GetAge(\"name\")"; //!
TEST_ASSERT( ret->defVal == defVal );
delete ret; //!
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-9-18 19:42:0]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList, list;
CTokenReader reader;
reader.ReadTokenList(list, "int i[10]");
POSITION pos = list.GetHeadPosition();
while(pos) iList.AddTail(list.GetNext(pos));
TEST_RUN( ret = pObj->ParseOneParameter2(iList) );
TEST_ASSERT( ret->type == "int" );
TEST_ASSERT( ret->name == "i" );
TEST_ASSERT( ret->array == "[10]" );
TEST_ASSERT( ret->defVal == "" );
delete ret; //!
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-9-18 19:42:0]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList, list;
CTokenReader reader;
reader.ReadTokenList(list, "const int");
POSITION pos = list.GetHeadPosition();
while(pos) iList.AddTail(list.GetNext(pos));
TEST_RUN( ret = pObj->ParseOneParameter2(iList) );
TEST_ASSERT( ret->type == "const int" );
TEST_ASSERT( ret->name == "" );
TEST_ASSERT( ret->array == "" );
TEST_ASSERT( ret->defVal == "" );
delete ret; //!
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [4] [正常] [2006-9-18 19:42:0]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList, list;
CTokenReader reader;
reader.ReadTokenList(list, "int&*");
POSITION pos = list.GetHeadPosition();
while(pos) iList.AddTail(list.GetNext(pos));
TEST_RUN( ret = pObj->ParseOneParameter2(iList) );
TEST_ASSERT( ret->type == "int&*" );
TEST_ASSERT( ret->name == "" );
TEST_ASSERT( ret->array == "" );
TEST_ASSERT( ret->defVal == "" );
delete ret; //!
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [5] [正常] [2006-9-18 19:42:0]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList, list;
CTokenReader reader;
reader.ReadTokenList(list, "const CList < CString *, CString * >* list");
POSITION pos = list.GetHeadPosition();
while(pos) iList.AddTail(list.GetNext(pos));
TEST_RUN( ret = pObj->ParseOneParameter2(iList) );
TEST_ASSERT( ret->type == "const CList<CString*,CString*>*" );
TEST_ASSERT( ret->name == "list" );
TEST_ASSERT( ret->array == "" );
TEST_ASSERT( ret->defVal == "" );
delete ret; //!
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [6] [正常] [2006-9-18 19:42:0]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList, list;
CTokenReader reader;
reader.ReadTokenList(list, "");
POSITION pos = list.GetHeadPosition();
while(pos) iList.AddTail(list.GetNext(pos));
TEST_RUN( ret = pObj->ParseOneParameter2(iList) );
TEST_ASSERT( ret == NULL );
reader.ClearTokenList(list); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [7] [正常] [2006-9-18 19:42:0]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList iList, list;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -