122 lines
3.2 KiB
C
122 lines
3.2 KiB
C
|
|
/*********************************************************************
|
|||
|
|
*
|
|||
|
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: TestMag.h <EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Shanghai Baosight Software Co., Ltd.
|
|||
|
|
*
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD>//TODO
|
|||
|
|
* <EFBFBD><EFBFBD>//TODO
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-08-03 tonny //TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* %USER%
|
|||
|
|
*********************************************************************/
|
|||
|
|
#ifndef _APP_UNITEST_TEST_H
|
|||
|
|
#define _APP_UNITEST_TEST_H
|
|||
|
|
|
|||
|
|
#include <iostream>
|
|||
|
|
#include <string>
|
|||
|
|
#include <vector>
|
|||
|
|
#include <map>
|
|||
|
|
#include <base/TestNode.h>
|
|||
|
|
//#include <unitest/apptest.h>
|
|||
|
|
|
|||
|
|
using namespace std;
|
|||
|
|
|
|||
|
|
namespace baosight
|
|||
|
|
{
|
|||
|
|
class TestMag
|
|||
|
|
{
|
|||
|
|
public :
|
|||
|
|
TestMag(int mode = 0,int column = 1);
|
|||
|
|
|
|||
|
|
virtual ~TestMag();
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ҫȷ<D2AA><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>ȷ
|
|||
|
|
void addTestCase(TestNode* child,TestNode*father=NULL);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>: <20><><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>0:<3A>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>з<EFBFBD>ʽ<EFBFBD><CABD>1<EFBFBD><31><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>з<EFBFBD>ʽ
|
|||
|
|
int run();
|
|||
|
|
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
|
|||
|
|
/**********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: //TODO:<3A><><EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> manaulTest
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> int //TODO:<3A><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* node : [IN/OUT] TestNode * //TODO:<3A><><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5>Χ <//TODO:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>
|
|||
|
|
* level : [IN/OUT] int & //TODO:<3A><><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5>Χ <//TODO:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-07-26 tonny //TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
**********************************************************************/
|
|||
|
|
int manaulTest(TestNode* node,int& level);
|
|||
|
|
|
|||
|
|
void showLevelMenu(TestNode*father,int level);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ʽִ<CABD><D6B4><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void autoTest(TestNode* node,int level,bool allLeaf = true);
|
|||
|
|
|
|||
|
|
/**********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: //TODO:<3A><><EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> clearNodes
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> void //TODO:<3A><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* father : [IN/OUT] TestNode * //TODO:<3A><><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5>Χ <//TODO:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-08-03 tonny //TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
**********************************************************************/
|
|||
|
|
void clearNodes(TestNode* father);
|
|||
|
|
|
|||
|
|
/**********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> showHelp
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> void //TODO:<3A><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-08-03 tonny //TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
**********************************************************************/
|
|||
|
|
void showHelp();
|
|||
|
|
private:
|
|||
|
|
//change mode ,auto <-->manual
|
|||
|
|
int changeMode(int level);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
|||
|
|
int showTipCommand();
|
|||
|
|
private:
|
|||
|
|
TestNode* p_testNodes;
|
|||
|
|
int m_column;
|
|||
|
|
int m_mode;//0<>ֶ<EFBFBD>ģʽ<C4A3><CABD>1<EFBFBD>Զ<EFBFBD>ģʽ
|
|||
|
|
int m_succTestNum;
|
|||
|
|
int m_failTestNum;
|
|||
|
|
int m_status;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>Կ<EFBFBD>ʼ
|
|||
|
|
#define TEST_START TestMag* p_TestMag = new TestMag();\
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>
|
|||
|
|
#define TEST_END p_TestMag->run();delete p_TestMag;\
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>
|
|||
|
|
#define TEST_ROOT_ADD(rootNode){\
|
|||
|
|
p_TestMag->addTestCase(new rootNode);\
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>Խ<EFBFBD><D4BD><EFBFBD>
|
|||
|
|
#define TEST_SUB_ADD(childNode,fatherName){\
|
|||
|
|
p_TestMag->addTestCase(new childNode,new fatherName);\
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif
|