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
8set -x
9set -e
10
11COMMAND=$@
12GCOV=$(realpath tools/gcov_shim)
13
14QUIET=-q
15
16# Build all of Skia.
17./gyp_skia
18ninja -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.
22lcov $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.
25out/Coverage/$COMMAND
26lcov $QUIET --gcov-tool=$GCOV -c -b out/Coverage -d out/Coverage -o /tmp/coverage
27
28lcov $QUIET -a /tmp/baseline -a /tmp/coverage -o /tmp/merged
29
30genhtml $QUIET /tmp/merged --legend -o out/Coverage/report
31xdg-open out/Coverage/report/index.html
32