付属の"Endless_Loop"プロジェクトでは、無限ループのある関数のテストを実現するため、いくつかの専用のマクロを使用しています。ここでは各マクロの説明を記載します。
CPPTEST_REGISTER_JMP(expression)
引数の式を評価する際に、ジャンプできる箇所を設定します。内部的にsetjmp または sigsetjmp関数を使用しています。そのため、それらの関数が使用できない環境では使えません。テストケース内で使用し、無限ループのあるテスト対象関数の呼び出し時に、テスト対象関数を引数にして実行します。
...
※テストケースエディタでは、呼び出し欄に記載します
CPPTEST_JMP (value)
内部のlongjmp またはsiglongjmp の呼び出しを実行し、実行ステータスをCPPTEST_REGISTER _JMPの呼び出しに戻します。通常は、無限ループ内で呼ばれている関数のスタブで使用し、また引数に整数を渡すことができます。引数に渡された整数はcpptestGetJmpReturn関数を使用して参照することができます。
int cpptestGetJmpReturn()
最後にCPPTEST_JMPでジャンプした際の引数を返します。ループ回数を参照したりする際使用します。
...