Home | History | Annotate | Download | only in tools
      1 #!/bin/sh
      2 
      3 # Run from Skia trunk something like this:
      4 #   $ tools/coverage.sh tests
      5 # or
      6 #   $ tools/coverage.sh gm
      7 
      8 set -x
      9 set -e
     10 
     11 COMMAND=$@
     12 GCOV=$(realpath tools/gcov_shim)
     13 
     14 QUIET=-q
     15 
     16 # Build all of Skia.
     17 ./gyp_skia
     18 ninja -C out/Coverage
     19 
     20 # Generate a zero-baseline so files not covered by $COMMAND will still show up in the report.
     21 # This reads the .gcno files that are created at compile time.
     22 lcov $QUIET --gcov-tool=$GCOV -c -b out/Coverage -d out/Coverage -o /tmp/baseline -i
     23 
     24 # Running the binary generates the real coverage information, the .gcda files.
     25 out/Coverage/$COMMAND
     26 lcov $QUIET --gcov-tool=$GCOV -c -b out/Coverage -d out/Coverage -o /tmp/coverage
     27 
     28 lcov $QUIET -a /tmp/baseline -a /tmp/coverage -o /tmp/merged
     29 
     30 genhtml $QUIET /tmp/merged --legend -o out/Coverage/report
     31 xdg-open out/Coverage/report/index.html
     32