次のマクロまたは関数を使用すると、テスト ケース実行時に stdin/stdout/stderr をリダイレクトできます。
 

マクロ

説明

CppTest_StreamRedirect* CppTest_RedirectStdInput(const char* value);

指定の文字列の値を入力ストリームに設定します。

CppTest_StreamRedirect* CppTest_RedirectNStdInput(const char* value, unsigned int size)

指定の文字列の先頭 size 文字の値を入力ストリームに設定します。

CppTest_StreamRedirect* CppTest_RedirectStdOutput()

現在実行されているテスト ケースの stdout ストリームをリダイレクトします。返された CppTest_StreamRedirect オブジェクトをテスト ケースの事後条件セクションで使用して、ストリームの内容を検証できます。以前の stdout ストリームの値は、現在のテスト ケースの実行が終了するときに自動的に復元されます。

CppTest_StreamRedirect* CppTest_RedirectStdError()

現在実行されているテスト ケースの stderr ストリームをリダイレクトします。返された CppTest_StreamRedirect オブジェクトをテスト ケースの事後条件セクションで使用して、ストリームの内容を検証できます。以前の stderr ストリームの値は、現在のテスト ケースの実行が終了するときに自動的に復元されます。

CppTest_StreamCompare(CppTest_StreamRedirect* redirect, const char* value)

リダイレクトされた stdout または stderr ストリームの内容を検証するために使用します。value がストリーム値に一致した場合は 0 を返し、value がストリーム値より小さい場合は負の整数を返し、value がストリーム値よりも大きい場合は正の整数を返します。

CppTest_StreamNCompare(CppTest_StreamRedirect* redirect, const char* value, unsigned int size)

リダイレクトされた stdout または stderr ストリームの内容を検証するために使用します。value がストリーム値に一致した場合は 0 を返し、value がストリーム値より小さい場合は負の整数を返し、value がストリーム値よりも大きい場合は正の整数を返します。ストリームの先頭 size 文字だけが比較されます。

int CppTest_StreamSearch(CppTest_StreamRedirect* redirect, const char* pattern)

リダイレクトされた stdout または stderr ストリームの内容を検証するために使用します。リダイレクトされたストリームを指定された patternで検索します。パターンが見つかった場合はインデックスを返し、見つからなかった場合は -1 を返します。

int CppTest_StreamNSearch(CppTest_StreamRedirect* redirect, const char* pattern, unsigned int size)

リダイレクトされた stdout または stderr ストリームの内容を検証するために使用します。リダイレクトされたストリームを指定された patternの先頭 size 文字で検索します。パターンが見つかった場合はインデックスを返し、見つからなかった場合は -1 を返します。

char* CppTest_StreamReadData(CppTest_StreamRedirect* redirect, unsigned int* len)

リダイレクトされたストリームから読み込んだデータを格納したバッファーへのポインターを返します。バッファーのサイズは len パラメーターに返されます (関数に null 以外を渡した場合)。バッファーは cpptestMalloc() 関数を使用してアロケートされます。返されたバッファーは cpptestFree() 関数を使用して開放する必要があります。

void CppTest_StreamReset(CppTest_StreamRedirect* redirect)

C++test の内部的なストリームをデフォルトの状態にリセットします。リダイレクト されたストリームは、テスト ケースの実行が終了するときに自動的にリセットされます。

  • No labels