リアルタイム システムで応答時間を測定および検証するには、次のマクロを使用します。
マクロ名 | 説明 |
---|---|
CppTest_Time CppTest_TimeInit(CPPTEST_INTEGER seconds, CPPTEST_INTEGER nanoseconds); | 指定の値を使って CppTest_Time 構造を初期化します。nanoseconds は -999999999 と 999999999 の間でなければなりません。 |
CppTest_Time CppTest_TimeCurrent(); | 現在の時刻によって 時刻は、グリニッジ標準時の 1970 年 1 月 1 日 00:00:00 からの秒数 (およびナノ秒数) として格納されます。 正確さは、使用しているプラットフォームに依存します。 |
CppTest_Time CppTest_TimeDiff(CppTest_Time t1, CppTest_Time t2); | t1 と t2 の差異を返します。 |
int CppTest_TimeCompare(CppTest_Time t1, CppTest_Time t2); | 2 つの 戻り値:
|
次のコードは、マクロを使って時刻を測定してレポートする方法の例です。
... /* Collect start time */ CppTest_Time start = CppTest_TimeCurrent(); /* Tested function call */ int _return = ::foo(); /* Compute time diff */ CppTest_Time stop = CppTest_TimeCurrent(); CppTest_Time diff = CppTest_TimeDiff(stop, start); /* Report time diff (assuming positive values) */ CPPTEST_MESSAGE(cpptestFormat("Call time for foo(): %d.%09d", diff.seconds, diff.nanoseconds)); ...
次のコードは、時刻をチェックして比較する方法の例です。
... /* Verify execution time */ CppTest_Time limit5ms = CppTest_TimeInit(0, 5000000); CPPTEST_ASSERT(CppTest_TimeCompare(diff, limit5ms) < 0) ...