| #!/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 |