Structured Basic Test のパターン数 - 単体テスト
/*****************************************************************************
PM_HotKeyCallback関数は、ホットキー押下時に呼び出されます。
Author: Takao Tamura / Technology Center
*****************************************************************************/
LRESULT CALLBACK
PM_HotKeyCallback(
HWND hWnd, /* ウィンドウハンドル */
UINT uMsg, /* メッセージのタイプ */
WPARAM wParam, /* 仮想キーコード */
LPARAM lParam /* 付加情報2 */
)
{----------------------------------->ルーチンそのものの開始を「1」とする
LRESULT lResult = 0;
HWND hWndNowActive;
HTASK hTaskNowActive;
char szCmdLineNowActive[257];
LPSTR lpszCmdLineNextActivate;
LPSTR lpszCmdLinePtrSave;
HWND hWndNextActivate;
SWITCHTASKRET fSwitchTask;
/* 現在アクティブなタスクとそのコマンドラインを求める。*/
hWndNowActive = GetActiveWindow();
hTaskNowActive = GetWindowTask(hWndNowActive);
PM_QueryCmdLineByTask(hTaskNowActive, szCmdLineNowActive);
/*
* 上で求めたアクティブになっているアプリケーションは
* そのキーの切替対象になっているか
*/
if (SwitchTask_QueryExistCmdLine(m_SwitchTask, --------> if で2とする
(WORD)wParam, szCmdLineNowActive) != SWTASK_NOERR) {
/* なっていなきゃ何もしない */
return lResult;
}
lpszCmdLineNextActivate =
SwitchTask_QueryNextActive(m_SwitchTask, (WORD)wParam, &fSwitchTask);
if (lpszCmdLineNextActivate == NULL) { --------> if で3とする
/* 切替候補がいないなら何もしない */
return lResult;
}
lpszCmdLinePtrSave = lpszCmdLineNextActivate;
for (;;) { ----------------------------------------> for で本来は4とする
でも、ここでは判定が入らないので、
3のままである。
/* コマンドラインからウィンドウハンドルに変換 */
hWndNextActivate =
PM_QueryMainWindowByCmdLine(lpszCmdLineNextActivate);
if (hWndNextActivate != NULL) ----------------------> if で4とする
/* 切替対象発見 */
break;
}
/* 切替候補が実行されていないなら次を */
lpszCmdLineNextActivate =
SwitchTask_QueryNextActive(m_SwitchTask,
(WORD)wParam, &fSwitchTask);
if (lpszCmdLineNextActivate == lpszCmdLinePtrSave) { ->if で5とする
break;
}
}
if (hWndNextActivate == NULL) { -----------------------> if で6とする
/* 切替候補がいないなら何もしない */
return lResult;
}
PM_SwitchToWindow(hWndNextActivate);
return lResult;
}
このルーチンのStructured Basid Test パターン数は6となります。
もちろん、if の中に and や or があれば、その都度パターン数が増えることになります。
Copyright (c) 2000 Takao Tamura