aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/coverage.sh
blob: 8fe75c5cd5e62b510e3cfe8bce7381d07d581622 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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 --legend -o out/Coverage/report
xdg-open out/Coverage/report/index.html