ここではC言語の関数テストの例として、sort関数をテストします。CUnitのわかりやすい日本語チュートリアルCUnit チュートリアルで使われている関数です。
sort_normal.cは、次の内容です。
void sort(int array[], int num) {
int i;
int j;
int val;
for(i=0; i<(num-1); i++) {
for(j=(num-1); j>i; j--) {
if (array[j-1] > array[j]) {
val = array[j];
array[j] = array[j-1];
array[j-1] = val;
}
}
}
}
バグを含むsort_bug.cは、次の内容です。
void sort(int array[], int num) {
int i;
int j;
int val;
for(i=0; i<(num-1); i++) {
for(j=(num-1); j>i; j--) {
if (array[j-1] > array[j]) {
val = array[j];
array[j] = array[j]; /* 本当は array[j] = array[j-1]; */
array[j-1] = val;
}
}
}
}
プログラムは、サンプルとして用意されているものを準備してください。
準備ができたら、Autotest.mkを使った次の手順でテストを実行できます。