⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccppparsertester.cpp

📁 这是一个能够自动生成文档的程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/**************************************************
//$$ BEGIN
char@TCHAR$signed_char@0@5@-128$-1$0$1$127
CTokenList@@1@1@()
POSITION@@0@1@0
BOOL@@0@2@0$1
LPCTSTR@@0@2@""$0
LPTSTR@@0@2@""$0
CPage@@1@1@()
CToken@@1@1@()
//$$ END
**************************************************/


/**************************************************
作    者:user1
建立日期:2006-8-12
修改日期:
说    明:测试文件,用于测试[CCppParser]。
**************************************************/

#include "stdafx.h"
//
/////////////////////////////////////////////////////////////////////////////
#include "CCppParserTester.h"

//
/////////////////////////////////////////////////////////////////////////////

void CCppParserTester::ClassTest()
{
    TEST_SOURCE_NAME(CppParser.cpp);
    CUSTOM_TEST(CCppParser);
 
    //$$
    TEST_CALL_BEGIN(CCppParser,1,0)
    TEST_CALL1(IsBeginOfWord_char())//IsBeginOfWord(char)
    TEST_CALL1(IsWordPart_char())//IsWordPart(char)
    TEST_CALL1(ParsePreprocessorIfdef_CTokenListR_POSITIONR_BOOL())//ParsePreprocessorIfdef(CTokenList&,POSITION&,BOOL)
    TEST_CALL1(ParsePreprocessorIf_CTokenListR_POSITIONR())//ParsePreprocessorIf(CTokenList&,POSITION&)
    TEST_CALL1(ParsePreprocessorDefine_CTokenListR_POSITIONR())//ParsePreprocessorDefine(CTokenList&,POSITION&)
    TEST_CALL1(ReadTokenList_CTokenListR_LPCTSTR())//ReadTokenList(CTokenList&,LPCTSTR)
    TEST_CALL1(ParsePreprocessorUndefine_CTokenListR_POSITIONR())//ParsePreprocessorUndefine(CTokenList&,POSITION&)
    TEST_CALL1(ParsePreprocessorInclude_CTokenListR_POSITIONR())//ParsePreprocessorInclude(CTokenList&,POSITION&)
    TEST_CALL1(ParseCode_charP())//ParseCode(char*)
    TEST_CALL1(ParsePreprocessor_CTokenListR_POSITIONR())//ParsePreprocessor(CTokenList&,POSITION&)
    TEST_CALL1(ParseFile_LPCTSTR())//ParseFile(LPCTSTR)
    TEST_CALL1(ParsePage_CPageP())//ParsePage(CPage*)
    TEST_CALL1(ParseNameSpace_CTokenListR_POSITIONR())//ParseNameSpace(CTokenList&,POSITION&)
    TEST_CALL1(ParseWord_CTokenListR_POSITIONR_POSITIONR_LPCTSTR())//ParseWord(CTokenList&,POSITION&,POSITION&,LPCTSTR)
    TEST_CALL1(GotoNextLine_CTokenListR_POSITIONR_CTokenP())//GotoNextLine(CTokenList&,POSITION&,CToken*)
    TEST_CALL_END()
    //$$
}

//
/////////////////////////////////////////////////////////////////////////////

CCppParserTester::CCppParserTester()
{
    pObj = 0;
}

CCppParserTester::~CCppParserTester()
{

}

void CCppParserTester::BeginCase(int arg)
{
    switch(arg)
    {

    case ARG_DEFAULT:
    {
        pObj = new TESTCLASS();
        break;
    }
    /*
    case :
    {
        pObj = new TESTCLASS();
        break;
    }
    case :
    {
        pObj = new TESTCLASS();
        break;
    }
    */

    }
}

void CCppParserTester::EndCase(int /*arg*/)
{
    delete pObj;
    pObj = 0;
}

//自定义测试,用MY_ASSERT(布尔表达式)断言预期输出
/////////////////////////////////////////////////////////////////////////////

void CCppParserTester::CustomTest()
{

}

//
/////////////////////////////////////////////////////////////////////////////

void CCppParserTester::IsBeginOfWord_char()
{
    TEST_BEGIN(CCppParser::IsBeginOfWord(char));
    BOOL ret;

    //$$CASE_BEGIN(IsBeginOfWord_char())

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = 'a';
    TEST_RUN( ret = pObj->IsBeginOfWord(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [1] [正常] [2006-8-12 16:1:27]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = 'z';
    TEST_RUN( ret = pObj->IsBeginOfWord(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [2] [正常] [2006-8-12 16:2:26]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = 'A';
    TEST_RUN( ret = pObj->IsBeginOfWord(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [3] [正常] [2006-8-12 16:2:32]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = 'Z';
    TEST_RUN( ret = pObj->IsBeginOfWord(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [4] [正常] [2006-8-12 16:2:36]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = '_';
    TEST_RUN( ret = pObj->IsBeginOfWord(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [5] [正常] [2006-8-12 16:2:40]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = '3';
    TEST_RUN( ret = pObj->IsBeginOfWord(ch) );
    TEST_ASSERT( ret == FALSE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [6] [正常] [2006-8-12 16:2:43]

    //??BVTEST_BEGIN_1(O,char,ch,R,0)
    //自动边界测试用例,可用TEST_FILTER()过滤输入数据
    //TEST_FILTER();
    //??TEST_RUN( ret = pObj->IsBeginOfWord(ch) );
    //TEST_ASSERT();
    //??BVTEST_END(O,1)
    //$$ [7] [自动] [2006-8-12 16:1:27]

    //$$CASE_END(IsBeginOfWord_char())

    TEST_RATE(1000);
    TEST_END();
}
//$$IsBeginOfWord_char()

void CCppParserTester::IsWordPart_char()
{
    TEST_BEGIN(CCppParser::IsWordPart(char));
    BOOL ret;

    //$$CASE_BEGIN(IsWordPart_char())

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = 'a';
    TEST_RUN( ret = pObj->IsWordPart(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [1] [正常] [2006-8-12 16:3:1]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = 'z';
    TEST_RUN( ret = pObj->IsWordPart(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [2] [正常] [2006-8-12 16:3:6]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = 'A';
    TEST_RUN( ret = pObj->IsWordPart(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [3] [正常] [2006-8-12 16:3:11]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = 'Z';
    TEST_RUN( ret = pObj->IsWordPart(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [4] [正常] [2006-8-12 16:3:15]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = '_';
    TEST_RUN( ret = pObj->IsWordPart(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [5] [正常] [2006-8-12 16:3:19]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = '3';
    TEST_RUN( ret = pObj->IsWordPart(ch) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [6] [正常] [2006-8-12 16:3:22]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char ch  = '#';
    TEST_RUN( ret = pObj->IsWordPart(ch) );
    TEST_ASSERT( ret == FALSE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [7] [正常] [2006-8-12 16:3:25]

    //??BVTEST_BEGIN_1(O,char,ch,R,0)
    //自动边界测试用例,可用TEST_FILTER()过滤输入数据
    //TEST_FILTER();
    //??TEST_RUN( ret = pObj->IsWordPart(ch) );
    //TEST_ASSERT();
    //??BVTEST_END(O,1)
    //$$ [8] [自动] [2006-8-12 16:3:1]

    //$$CASE_END(IsWordPart_char())

    TEST_RATE(1000);
    TEST_END();
}
//$$IsWordPart_char()





void CCppParserTester::ParsePreprocessorIfdef_CTokenListR_POSITIONR_BOOL()
{
    TEST_BEGIN(CCppParser::ParsePreprocessorIfdef(CTokenList&,POSITION&,BOOL));

    //$$CASE_BEGIN(ParsePreprocessorIfdef_CTokenListR_POSITIONR_BOOL())

    /// #ifdef 宏名称已定义
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CTokenList ioList;
    pObj->ReadTokenList(ioList, "WIN32");
    POSITION ioPos = ioList.GetHeadPosition();
    BOOL iNot = FALSE;
    TEST_RUN( pObj->ParsePreprocessorIfdef(ioList, ioPos, iNot) );
    TEST_ASSERT( pObj->IsSkip() == FALSE );
    pObj->ClearTokenList(ioList); //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [1] [正常] [2006-8-17 21:16:50]

    /// #ifndef 宏名称已定义
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CTokenList ioList;
    pObj->ReadTokenList(ioList, "WIN32");
    POSITION ioPos = ioList.GetHeadPosition();
    BOOL iNot = TRUE;
    TEST_RUN( pObj->ParsePreprocessorIfdef(ioList, ioPos, iNot) );
    TEST_ASSERT( pObj->IsSkip() == TRUE );
    pObj->ClearTokenList(ioList); //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [2] [正常] [2006-8-17 21:25:14]

    /// #ifdef 宏名称未定义
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CTokenList ioList;
    pObj->ReadTokenList(ioList, "NOTDEFINE");
    POSITION ioPos = ioList.GetHeadPosition();
    BOOL iNot = FALSE;
    TEST_RUN( pObj->ParsePreprocessorIfdef(ioList, ioPos, iNot) );
    TEST_ASSERT( pObj->IsSkip() == TRUE );
    pObj->ClearTokenList(ioList); //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [3] [正常] [2006-8-17 21:22:55]

    /// #ifndef 宏名称未定义
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CTokenList ioList;
    pObj->ReadTokenList(ioList, "NOTDEFINE");
    POSITION ioPos = ioList.GetHeadPosition();
    BOOL iNot = TRUE;
    TEST_RUN( pObj->ParsePreprocessorIfdef(ioList, ioPos, iNot) );
    TEST_ASSERT( pObj->IsSkip() == FALSE );
    pObj->ClearTokenList(ioList); //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [4] [正常] [2006-8-17 21:25:33]

    //??BVTEST_BEGIN_3(O,CTokenList,ioList,R,0,POSITION,ioPos,R,0,BOOL,iNot,R,0)
    //自动边界测试用例,可用TEST_FILTER()过滤输入数据
    //TEST_FILTER();
    //??TEST_RUN( pObj->ParsePreprocessorIfdef(ioList, ioPos, iNot) );
    //TEST_ASSERT();
    //??BVTEST_END(O,3)
    //$$ [5] [自动] [2006-8-17 21:16:50]

    //$$CASE_END(ParsePreprocessorIfdef_CTokenListR_POSITIONR_BOOL())

    TEST_RATE(1000);
    TEST_END();
}
//$$ParsePreprocessorIfdef_CTokenListR_POSITIONR_BOOL()

void CCppParserTester::ParsePreprocessorIf_CTokenListR_POSITIONR()
{
    TEST_BEGIN(CCppParser::ParsePreprocessorIf(CTokenList&,POSITION&));

    //$$CASE_BEGIN(ParsePreprocessorIf_CTokenListR_POSITIONR())

    /// #if defined WIN32
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CTokenList ioList;
    pObj->ReadTokenList(ioList, "defined WIN32");
    POSITION ioPos = ioList.GetHeadPosition();
    gIdens.AddGlobalMacro("WIN32");
    TEST_RUN( pObj->ParsePreprocessorIf(ioList, ioPos) );
    TEST_ASSERT( pObj->IsSkip() == FALSE );
    pObj->ClearTokenList(ioList); //!

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -