ITK/Code Coverage Practices

From KitwarePublic
< ITK
Jump to navigationJump to search

Overview

  • The target code coverage is 95%
  • Historically we have only achieved 84%.
  • The practices described in this page should help us reach the target.

How to compute Code Coverage locally

Step 1

  • Use Linux or Mac

Step 2

  • Add the CMake flags:
      CMAKE_CXX_FLAGS:STRING=-g -O0  -fprofile-arcs -ftest-coverage
      CMAKE_C_FLAGS:STRING= -g -O0  -fprofile-arcs -ftest-coverage

Step 3

  • Configure to compile ITK for Debug
  • by setting the CMake variable
                    CMAKE_BUILD_TYPE  Debug

Step 4

  • From the binary directory type the "ctest" expression that select the tests that you want use to generate coverage (Ideally this should only need to be the unit tests of the class in question).
  • For example:
               ctest  -R   itkHDF5ImageIOTest   -V   -N
  • This will print to the console the command line instructions needed to run the tests (-V option), but without running the tests (-N option).

Step 5

  • From the binary directory type the path to this script in the ITK source tree and add the selection expression that you put in front of ctest.
  • For example:
       computeCodeCoverageLocallyForOneTest.sh ./Modules/IO/HDF5 -R  itkHDF5ImageIOTest
  • This will run the selected tests in ITK and generate code coverage for the entire toolkit, but only from the test that you have selected. The code coverage report will be generated in HTML and will be presented with Firefox.