| #!/bin/sh | 
 |  | 
 | # Run from Skia trunk something like this: | 
 | #   $ tools/coverage.sh tests | 
 | # or | 
 | #   $ tools/coverage.sh gm | 
 |  | 
 | set -x | 
 | set -e | 
 |  | 
 | COMMAND=$@ | 
 | GCOV=$(realpath tools/gcov_shim) | 
 |  | 
 | QUIET=-q | 
 |  | 
 | # Build all of Skia. | 
 | ./gyp_skia | 
 | ninja -C out/Coverage | 
 |  | 
 | # Generate a zero-baseline so files not covered by $COMMAND will still show up in the report. | 
 | # This reads the .gcno files that are created at compile time. | 
 | lcov $QUIET --gcov-tool=$GCOV -c -b out/Coverage -d out/Coverage -o /tmp/baseline -i | 
 |  | 
 | # Running the binary generates the real coverage information, the .gcda files. | 
 | out/Coverage/$COMMAND | 
 | lcov $QUIET --gcov-tool=$GCOV -c -b out/Coverage -d out/Coverage -o /tmp/coverage | 
 |  | 
 | lcov $QUIET -a /tmp/baseline -a /tmp/coverage -o /tmp/merged | 
 |  | 
 | genhtml $QUIET /tmp/merged --legend -o out/Coverage/report | 
 | xdg-open out/Coverage/report/index.html |