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 |