cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
 全て データ構造 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義
CmnTest.c ファイル

ユニットテストライブラリ [詳解]

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cmnclib/CmnTest.h"
#include "cmnclib/Common.h"
#include "cmnclib/CmnData.h"
#include "cmnclib/CmnTime.h"
#include "cmnclib/CmnString.h"
#include "cmnclib/CmnLog.h"

マクロ定義

#define REPORT_BUF_SIZE_OF_DUMP   1024
 
#define REPORT_BUF_SIZE_OF_ONE_CALSE   4096
 

関数

void CmnTest_InitializeTestPlan (CmnTestPlan *plan)
 テストプランを作成する [詳解]
 
void CmnTest_AddTestCase (CmnTestPlan *plan, char *fileName, char *caseName, void(*testFunction)(CmnTestCase *))
 テストプランにテストケースを追加する [詳解]
 
void CmnTest_Run (CmnTestPlan *plan, int realtimeReport)
 テストを実行する [詳解]
 
void CmnTest_DestroyTest (CmnTestPlan *plan)
 テストプランを破棄する [詳解]
 
int CmnTest_AssertNumber (CmnTestCase *testCase, long line, long long actual, long long expected)
 
int CmnTest_AssertPointer (CmnTestCase *testCase, long line, void *actual, void *expected)
 
int CmnTest_AssertString (CmnTestCase *testCase, long line, char *actual, char *expected)
 
void tohex8 (char *buf, unsigned char dat)
 8bitデータをHEX形式の文字列に変換する. [詳解]
 
char * toHexString (void *data, size_t len)
 
int CmnTest_AssertData (CmnTestCase *testCase, long line, void *actual, void *expected, size_t dataLen)
 
int CmnTest_AssertOK (CmnTestCase *testCase, long line)
 
int CmnTest_AssertNG (CmnTestCase *testCase, long line)
 

詳解

ユニットテストライブラリ

ユニットテストライブラリ。

<使用例>

 # テストプランの作成
 CmnTest_Plan plan;
 CmnTest_InitializeTestPlan(&plan);
 # テストケースの追加
 CmnTest_AddTestCaseEasy(&plan, test_1);
 CmnTest_AddTestCaseEasy(&plan, test_2);
 # テスト実行
 CmnTest_Run(&plan, False);
 # テスト結果表示
 puts(plan.report);
 # テスト破棄
 CmnTest_DestroyTest(&plan);
 # テストメソッド(test_1)
 void test_1(CmnTest_Case *testCase) {
   # テスト対象処理の実行
   char buf[32];
   sprintf(buf, "%s %s", "Hello", "world");
   # 検証
   CmnTest_AssertString(case, __LINE__, buf, "Hello world");
 }
 # テストメソッド(test_2)
 void test_2(CmnTest_Case *testCase) {
   ・・・省略・・・
 }
 
著者
H.Kumagai

関数詳解

void CmnTest_AddTestCase ( CmnTestPlan plan,
char *  fileName,
char *  caseName,
void(*)(CmnTestCase *)  testFunction 
)

テストプランにテストケースを追加する

本関数にはラッパーマクロ「CmnTest_AddTestCaseEasy」が用意されている。 ラッパーマクロを使用すると、fileName(__FILE__)とcaseName(testFunction関数名)が補完される。

引数
testPlanテストプラン
fileNameテストケースファイル名
caseNameテストケース名
testFunctionテスト実施関数
int CmnTest_AssertData ( CmnTestCase testCase,
long  line,
void *  actual,
void *  expected,
size_t  dataLen 
)

データ検証

int CmnTest_AssertNG ( CmnTestCase testCase,
long  line 
)

検証NGを記録する

int CmnTest_AssertNumber ( CmnTestCase testCase,
long  line,
long long  actual,
long long  expected 
)

整数値検証

int CmnTest_AssertOK ( CmnTestCase testCase,
long  line 
)

検証OKを記録する

int CmnTest_AssertPointer ( CmnTestCase testCase,
long  line,
void *  actual,
void *  expected 
)

ポインタ検証

int CmnTest_AssertString ( CmnTestCase testCase,
long  line,
char *  actual,
char *  expected 
)

文字列検証

void CmnTest_DestroyTest ( CmnTestPlan plan)

テストプランを破棄する

引数
planテストプラン
void CmnTest_InitializeTestPlan ( CmnTestPlan plan)

テストプランを作成する

テストプランを作成する

void CmnTest_Run ( CmnTestPlan plan,
int  realtimeReport 
)

テストを実行する

引数
planテストプラン
realtimeReportテスト実行時にテスト結果を順次標準出力に出力するか(True:出力する、False:出力しない)
void tohex8 ( char *  buf,
unsigned char  dat 
)

8bitデータをHEX形式の文字列に変換する.

引数
buf(0) 変換後のHEX文字列を格納するバッファ。
最低でも2byteの領域を有すること。
dat(I) 変換対象のデータ
著者
N.Ogasawara