// TestFW.h: interface for the CTestFW class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_TESTFW_H__9530BD51_EF74_4119_A9CD_975DEB98DE83__INCLUDED_) #define AFX_TESTFW_H__9530BD51_EF74_4119_A9CD_975DEB98DE83__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define MAX_TEST_FUNC 10 #define MAX_TEST_ITEMS 100 enum TEST_MARKER {TM_END = -1, TM_MAIN = 1, TM_REQUIRED = 2, TM_SETUP = 3, TM_TEARDOWN = 4, TM_EXCLUDE = 5}; // TM : Test Marker enum TEST_STATUS {TS_NOT_TESTED = 0, TS_TEST_OK = 2, TS_TEST_FAILED = 3, TS_TEST_CANCELED = 4}; // TS : Test Status template class CTestFW { public: typedef BOOL (T::*TEST_FUNC)(); typedef struct { TEST_FUNC fnRequired[MAX_TEST_FUNC]; TEST_FUNC fnSetUp[MAX_TEST_FUNC]; TEST_FUNC fnMain[MAX_TEST_FUNC]; TEST_FUNC fnTearDown[MAX_TEST_FUNC]; BOOL bExcludeFromTest; TEST_STATUS fTestStatus; int nItemNumber; } TEST_ITEM; typedef struct { TCHAR sName[MAX_PATH]; TEST_FUNC fnFunc; } FUNC_NAME; private: public: CTestFW(); ~CTestFW(); BOOL RunTest(); void InitTestItems(); void AddFuncName(TCHAR* pName, TEST_FUNC func); BOOL AddTestItem(int dummy, ...); BOOL AddTestItem(TEST_ITEM* pItem); void ShowDuplicatedTest(); BOOL CheckWhetherAllTestFunctionNameAreRegistered(); BOOL IsRequiredTestTested(int testIdx); void DoMainTest(int testIdx); BOOL GetFunctionName(TEST_FUNC fn, TCHAR** ppFuncName); int m_cTestItems; TEST_ITEM m_TestItems[MAX_TEST_ITEMS]; FUNC_NAME m_FuncName[MAX_TEST_ITEMS]; int m_cFuncName; T* p; int m_nCurrentItemNumber; }; #endif // !defined(AFX_TESTFW_H__9530BD51_EF74_4119_A9CD_975DEB98DE83__INCLUDED_)