testgen2 > testgen2 document


最終更新日:2012/11/19

testgen2 document




testgen2 構成

ckr, c89 (それぞれ共に85ディレクトリ, 約9,300のcファイル)





1-X:代入のテスト

変数, 配列, 構造体・共用体の入れ子への代入を行っている.
戻る


2-1-X:演算のテスト

四則演算, 剰余演算, シフト演算, ビット演算, 比較演算, 論理演算, などの演算を行っている.
戻る


2-2-X:プログラムの構文チェック

四則演算, 剰余演算, シフト演算, ビット演算, 比較演算, などのシンタックス検査(プログラムの構文が正しいかどうか)のテストを行っている.

01: #define TGEN_FLT_EQ(a, b) ( ((a)==(b)) || ABS(((a) - (b)))
/ MAX( ABS(a), ABS(b) ) <= __FLT_EPSILON__ )
02: #define OK_f 1.0
03: #define NO_f 0.0
04: float ftest;
05:
06: int main(void)
07: {
08: float Float;
09:
10: ftest = NO_f;
11: Float = OK_f;
12: ftest = Float * Float + Float / Float - Float;
13:
14: if ( (TGEN_FLT_EQ(ftest, OK_f)) )
15: printok();
16: if ( (TGEN_FLT_EQ(ftest, NO_f)) )
17: printno();
18:
19: return 0;
20: }
※四則演算のシンタックス検査の例(2-2-02/f000.c)

戻る



2-3-X:同じ演算を繰り返すテスト

加算, 減算, 乗算, 除算を羅列(繰り返し使用)してテストしている.
論理否定, ビット否定, 等号演算, 比較演算, ビット演算, なども同様に羅列してテストを行う.

01: #define TGEN_FLT_EQ(a, b) ( ((a)==(b)) || ABS(((a) - (b)))
/ MAX( ABS(a), ABS(b) ) <= __FLT_EPSILON__ )
02: #define OK_f 1.0
03: #define NO_f 0.0
04: #define NOK_f 20.0
05:
06: float ftest;
07:
08: int main(void)
09: {
10: float Float;
11:
12: ftest = NO_f;
13: Float = OK_f;
14: ftest = (Float + Float + Float + Float + Float + Float
+ Float + Float + Float + Float + Float + Float + Float + Float
+ Float + Float + Float + Float + Float + Float) / NOK_f;
15:
16: if ( (TGEN_FLT_EQ(ftest, OK_f)) )
17: printok();
18: if ( (TGEN_FLT_EQ(ftest, NO_f)) )
19: printno();
20:
21: return 0;
22: }
※加算の羅列を除算する例(2-3-07/f000_float.c)

戻る



2-4-X:浮動小数点演算のテスト

浮動小数点演算を行う.
戻る


3-X:条件分岐、ループのテスト

条件分岐(if, switch)や, ループ(do-while, while, for)を1~複数回行ってテストする.
条件分岐とループを組み合わせたテストも行う.
goto文も組み合わせてテストする.

※ディレクトリ 3-3-02_12-14_22 は,
条件分岐とループの組み合わせ 154個と, 条件式19種類を組み合わせた 計2,926個のcプログラムを含むディレクトリとなっている.
戻る


4-X:関数呼び出しのテスト

関数呼び出しのテストを行う.
4-4-Xでは, 関数呼び出しを用いて浮動小数点演算を行っている.
戻る


5-X:ポインタのテスト

ポインタへの代入や, returnの戻り値, 2重ポインタ, 多重ネスト, 再帰関数, などのテストを行う.
戻る


6-X:分割コンパイルのテスト

分割コンパイルを用いるテストを行っている.
6-1-Xで代入のテスト, 6-2-Xで, 各変数, 配列, 構造体・共用体の引き渡しのテスト, 6-3-Xで関数呼び出しのテストを行う.
戻る


testgen2 > testgen2 document