gcov 简述

        代码覆盖率是单元测试的一个指标,通常覆盖率越高,单元测试就做得更完备。(然而,覆盖率是不是和软件质量成正比关系呢?)gcov是GNU工具链中的一个重要的工具,虽然gcov是覆盖率很好的工具,但是gcov的更重要的应用是性能的调优。gcov通过监视程序的执行,从而确定某行代码有没有执行,执行了多少次。gcov的报告是基于文本的格式的,看起来是比较难看点。但是,有个叫lcov的工具,将gcov的报告格式转换为html的直观形式,后面介绍。

 

    gcov使用:

    如有以下代码:

   1:  #include <stdio.h>
   2:   
   3:  void bubbleSort( int list[], int size )
   4:  {
   5:      int i, j, temp, swap = 1;
   6:   
   7:      while (swap) {
   8:   
   9:          swap = 0;
  10:   
  11:          for ( i = (size-1) ; i >= 0 ; i-- ) {
  12:   
  13:              for ( j = 1 ; j <= i ; j++ ) {
  14:   
  15:                  if ( list[j-1] > list[j] ) {
  16:   
  17:                      temp = list[j-1];
  18:                      list[j-1] = list[j];
  19:                      list[j] = temp;
  20:                      swap = 1;
  21:   
  22:                  }
  23:   
  24:              }
  25:   
  26:          }
  27:   
  28:      }
  29:   
  30:   
  31:  }
  32:   
  33:  int main()
  34:  {
  35:      int theList[10]={10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
  36:      int i;
  37:   
  38:      /* Invoke the bubble sort algorithm */
  39:      bubbleSort( theList, 10 );
  40:   
  41:      /* Print out the final list */
  42:      for (i = 0 ; i < 10 ; i++) { 
  43:          printf("%d\n", theList[i]);
  44:      }
  45:      if(i == 0){
  46:          printf("i = 0\n");
  47:      }else{
  48:          printf("i != 0\n");
  49:      }
  50:   
  51:  }

你可能感兴趣的:(target,blank,的,覆盖率,是)