概要

ここでは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を使った次の手順でテストを実行できます。

  1. グループディレクトリーの作成
  2. テストディレクトリーの作成
  3. テスト説明ファイルの作成
  4. 関数テスト用プログラムのソース作成
  5. Makefileの編集
  6. テスト想定ファイルの作成
  7. テストの実行
  8. テストログファイルの確認
  9. テストグループの実行
  10. テストグループログファイルの確認