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