| Index: tools/coverage.sh
 | 
| diff --git a/tools/coverage.sh b/tools/coverage.sh
 | 
| new file mode 100755
 | 
| index 0000000000000000000000000000000000000000..3e34806843f33d86d76a2dfd67a40dd1321154bb
 | 
| --- /dev/null
 | 
| +++ b/tools/coverage.sh
 | 
| @@ -0,0 +1,31 @@
 | 
| +#!/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 -o out/Coverage/report
 | 
| +xdg-open out/Coverage/report/index.html
 | 
| 
 |