📄 afxbase.h
字号:
/*! Time-stamp: <@(#)BaseTestCase.h 2005-12-10 Ricmy zhu mail: ricmy_zhu@newsofitn.com>
******************************************************************************
* file : AfxBase.h
* brief Base Test case system
* Project : Test case system 1.10
* Package : BaseTestCase
* Company : NEWSOFTINC
* Author : Ricmy zhu Date: 2005-12-10
* Purpose : add test case in project .
******************************************************************************
* Version History:
*
* V 1.10 2005-12-10 BN : First Revision
*
******************************************************************************
*/
#if !defined(AFX_TEST_H__BASE0F005564_8A25_4BF5_BD78_F09C55EDC2BC__INCLUDED_)
#define AFX_TEST_H__BASE0F005564_8A25_4BF5_BD78_F09C55EDC2BC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Test.h : header file
//
#ifdef _MT
void AFXAPI AfxLockGlobals(int nLockType);
void AFXAPI AfxUnlockGlobals(int nLockType);
BOOL AFXAPI AfxCriticalInit();
void AFXAPI AfxCriticalTerm();
#else
#define AfxLockGlobals(nLockType)
#define AfxUnlockGlobals(nLockType)
#define AfxCriticalInit() (TRUE)
#define AfxCriticalTerm()
#endif
#define CRIT_RUNTIMECLASSLIST 0
struct AFX_CLASSINIT_EX
{
AFX_CLASSINIT_EX(CRuntimeClass* pNewClass)
{
//AFX_MANAGE_STATE(AfxGetStaticModuleState());
AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
// AFX_MODULE_STATE* pModuleState = AfxGetStaticModuleState();
AfxLockGlobals(CRIT_RUNTIMECLASSLIST);
if(pModuleState->m_pClassInit)
pNewClass->m_pNextClass = pModuleState->m_pClassInit;
pModuleState->m_pClassInit = pNewClass;
//pModuleState->m_classList.AddHead(pNewClass);
AfxUnlockGlobals(CRIT_RUNTIMECLASSLIST);
}
};
#ifdef _AFXDLL
#define _IMPLEMENT_RUNTIMECLASS_EX(class_name, base_class_name, wSchema, pfnNew,base_TestCase_name) \
CRuntimeClass* PASCAL class_name::_GetBaseClass() \
{ return RUNTIME_CLASS(base_class_name); } \
AFX_COMDAT AFX_DATADEF CRuntimeClass class_name::class##class_name = { \
#base_TestCase_name, sizeof(class class_name), wSchema, pfnNew, \
&class_name::_GetBaseClass, NULL }; \
CRuntimeClass* class_name::GetRuntimeClass() const \
{ return RUNTIME_CLASS(class_name); }
#else
#define _IMPLEMENT_RUNTIMECLASS_EX(class_name, base_class_name, wSchema, pfnNew,base_TestCase_name) \
AFX_DATADEF CRuntimeClass class_name::class##class_name = { \
#base_TestCase_name, sizeof(class class_name), wSchema, pfnNew, \
RUNTIME_CLASS(base_class_name), NULL }; \
CRuntimeClass* class_name::GetRuntimeClass() const \
{ return RUNTIME_CLASS(class_name); }
#endif
#define IMPLEMENT_SERIAL_EX(class_name, base_class_name, wSchema,base_TestCase_nae) \
LPSTR class_name::m_lp##class_name = #class_name;\
LPSTR class_name::GetTestCaseClassName() \
{ return m_lp##class_name;}\
CObject* PASCAL class_name::CreateObject() \
{ return new class_name; } \
_IMPLEMENT_RUNTIMECLASS_EX(class_name, base_class_name, wSchema, \
class_name::CreateObject,base_TestCase_nae) \
AFX_CLASSINIT_EX _init_##class_name(RUNTIME_CLASS(class_name)); \
CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb) \
{ pOb = (class_name*) ar.ReadObject(RUNTIME_CLASS(class_name)); \
return ar; }
typedef void (AFX_MSG_CALL CObject::*TEST_CASE)(void);
typedef struct
{
TEST_CASE dcase;
char szFunName[50];
}FUNINFO;
#define BASE_TEST_CASE_TRACE \
public:\
LPSTR szCurFunName;\
static void test_case_trace(CBaseTestCase * pThis ,CString strText);\
static void test_case_assert(CBaseTestCase * pThis ,BOOL);
#define BASE_TEST_CASE_H(class_name) DECLARE_SERIAL(class_name)\
public: \
static LPSTR m_lp##class_name;
#define BASE_TEST_CASE_CPP(class_name) IMPLEMENT_SERIAL_EX(class_name,CObject, 4,CBaseTestCase)
#define GETTESTCASEMAP FUNINFO * GetTestCaseMap() {return _messageEntries;};
#define TEST_CASE_MAP private: \
static FUNINFO _messageEntries[]; \
virtual LPSTR GetTestCaseClassName();\
GETTESTCASEMAP
#define BEGIN_TEST_CASE_MAP(theClass) FUNINFO theClass::_messageEntries[] = \
{
#define END_TEST_CASE_MAP 0 } ;
#define TEST_CASE_MEMBER(memberFxn) {(TEST_CASE)&memberFxn,#memberFxn } ,
#endif // !defined(AFX_TEST_H__BASE0F005564_8A25_4BF5_BD78_F09C55EDC2BC__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -