gcovカバレッジ説明

gcovのカバレッジ出力の意味のメモ

1.Lines executed
  実行ラインをどれだけ通過したかを表す。C0カバレッジ

2.Branches executed
 条件分岐行をどれだけ実行したか。C1カバレッジ
3.Taken at least once
 各条件分岐の組合せを1回は通過したか。C1カバレッジ

3の例) 下の例だとx=6のケースをテストすると xが5以下の場合のテストケースがないため、Taken at least onceは50%になる。 
  100%にするにはx=5のテストケースが必要

 int func(int x){
     if(x > 5){
         x = x*2;
      }else{
         x = x*3;
      }
      x = x-3;
     return x;
    }


4.Calls executed
 対象関数内で別関数を呼んだかどうか。S0カバレッジ