1つのテストプログラムは1つの共有ライブラリから構成され、1つの共有ライブラリに複数のテストメソッドを定義することができます。
テストメソッドは次のいずれかの条件を満たす任意の名前の関数です。
テストメソッドが呼び出しから戻ると、そのテストは成功したことになります。テストを強制的に失敗させるにはtf_
共有ライブラリにtf_
TF_AUDIT テストメソッドであることを示す関数の属性です。 |
TF_METHOD(x) テストメソッドを宣言します。 |
tf_fail(x) テストを失敗させます。 |
tf_assert(x) 条件式が成立することを確認します。 |
tf_printStackTrace スタックトレースを表示します。 |
tf_permitMemoryLeak(func) メモリ割り当てのトレースを一時的に無効にして、関数を呼び出します。 |
void | tf_ テストメソッドの呼び出しの前に呼び出されます。 |
void | tf_ テストメソッドの呼び出しの後に呼び出されます。 |
const char [] | tf_description テストプログラムの説明を記述します。 |
TF_AUDIT |
テストメソッドは引数なし戻り値なしの関数でなければなりません。
例えばfooというテストメソッドを定義する場合は、次のように記述します。
void TF_AUDIT foo(void) { /* テストの内容 */ ... }
TF_METHOD(x) |
引数xはテストメソッドの名前になります。
例えばfooというテストメソッドを定義する場合は、次のようにこのマクロを使用します。
TF_METHOD (foo) { /* テストの内容 */ ... }
tf_fail(x) |
コンソールにファイル名、行番号、詳細メッセージを表示してテストを失敗させます。引数xは文字列でなければなりません。
このマクロは次のように文字列を引数とする戻り値なしの関数として呼び出すように使用します。
tf_fail ("メッセージ");
tf_assert(x) |
条件式である引数xを評価します。その条件が成立した場合はなにもしません。成立しなかった場合はコンソールにファイル名、行番号、条件式を表示してテストを失敗させます。
このマクロは次のように論理値を引数とする戻り値なしの関数として呼び出すように使用します。
tf_assert (条件式);
次のように記述するのと同様の結果になります。
if (!条件式) { tf_fail ("条件式"); }
tf_printStackTrace |
このマクロは次のように引数なし戻り値なしの関数として呼び出すように使用します。
tf_printStackTrace ();
tf_permitMemoryLeak(func) |
メモリ割り当てのトレースを無効にしてから、funcを呼び出します。funcが割り当てたメモリはテスト終了までに解放されなかったとしても、メモリリークとして報告されません。funcの呼び出しが戻ると、メモリ割り当てのトレースは再度有効になります。funcは引数なし戻り値なしの関数でなければなりません。
このマクロは次のように使用します。
static void staticInitialize(void) { /* メモリリークしてもよい処理 */ ... } TF_METHOD (test) { tf_permitMemoryLeak (staticInitialize); ... }
funcから再帰的にtf_
void tf_initialize( | void) |
テストプログラムはこの関数を定義してください。定義しない場合は、この関数は呼ばれません。
この関数がテストを失敗させることもできます。その場合、テストメソッドやtf_
void tf_finalize( | void) |
テストプログラムはこの関数を定義してください。定義しない場合は、この関数は呼ばれません。
テストメソッドが既に失敗している場合は、この関数は呼び出されません。また、この関数がテストを失敗させることもできます。
const char tf_description[] |
テストプログラムがこの変数を定義すると、テスト実行時などにその内容を表示するかもしれません。