リアルタイム システムで応答時間を測定および検証するには、次のマクロを使用します。
| 名前 | 詳細 |
|---|---|
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) ...