?? stressman.h
字號:
////////////////////////////////////////////////////////////////////////////
//
// StressMan.h - StressMark 管理所有測試用例(線程)的類
//
// created by Wang Yong Gang, 2001-08-07 ( version 1.0 )
// modified by Wang Yong Gang, 2002-02-16 ( version 1.1 )
//
////////////////////////////////////////////////////////////////////////////
#if !defined(_WIX_STRESS_MAN_H_001)
#define _WIX_STRESS_MAN_H_001
class StressMan
{
public:
StressMan(CListCtrl& list);
~StressMan();
public:
// 初始化用例列表
bool InitializeCaseList();
protected:
// 所有的線程指針(CWinThread*)
CPtrArray m_arrThreads;
// 監視線程指針(CWinThread*)
CWinThread* m_pMonitorThread;
// 配置數組 g_arrTestSuite 的大小
int m_nTestSuiteArraySize;
// 所有的測試用例對象指針(StressCase*)
CObArray m_arrCaseObjects;
// 傳遞給用例線程的初始化信息結構
struct ThreadInfo
{
StressMan* pStressMan;
int nIndex; // 線程序號(在m_arrCaseObjects中的)
int nTimes; // 該線程內重復測試(調用OnStep())的次數
int nInterval; // 每兩次重復中間間隔的時間(微秒數)
};
// 所有用例線程的初始化信息
ThreadInfo* m_arrThreadInfo;
// 監視線程的初始化信息
ThreadInfo m_MonitorThreadInfo;
// 用例列表控件
CListCtrl& m_list;
// 同步所有用例線程的事件
CEvent m_event;
// 表示有多少個線程存活的記數器
LONG m_lives;
public:
// 啟動
bool StartSuite();
// 停止
bool StopSuite();
// 無法終止時殺線程
bool KillSuite();
// 報表
bool ReportSuite(LPCTSTR strPath);
protected:
// 設置線程狀態并更新列表框顯示
// nIndex: 序號,-1表示設置所有線程狀態
// nState: 狀態類型,見StressCase的枚舉
// strMessage: 描述信息
void SetThreadState(int nIndex, int nState, LPCTSTR strMessage = NULL);
// 設置線程已執行次數并更新列表框顯示
// nIndex: 序號,-1表示設置所有線程
// nTimes: 執行次數
void StressMan::SetThreadFinishedTimes(int nIndex, int nTimes);
// 設置線程執行總時間并更新列表框顯示
// nIndex: 序號,-1表示設置所有線程狀態
// dTime: 執行總時間
void StressMan::SetThreadTime(int nIndex, double dTime);
// 線程的執行體
static UINT ThreadBody( LPVOID pParam );
// 監視線程的執行體
static UINT MonitorThreadBody( LPVOID pParam );
// 根據測試邏輯,判斷是否能設置為新的狀態
inline bool CanSetState(int oldState, int newState);
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -