11fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com#!/bin/sh 21fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com 31fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com# Run from Skia trunk something like this: 41fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com# $ tools/coverage.sh tests 51fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com# or 61fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com# $ tools/coverage.sh gm 71fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com 81fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comset -x 91fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comset -e 101fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com 111fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comCOMMAND=$@ 121fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comGCOV=$(realpath tools/gcov_shim) 131fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com 141fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comQUIET=-q 151fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com 161fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com# Build all of Skia. 171fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com./gyp_skia 181fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comninja -C out/Coverage 191fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com 201fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com# Generate a zero-baseline so files not covered by $COMMAND will still show up in the report. 211fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com# This reads the .gcno files that are created at compile time. 221fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comlcov $QUIET --gcov-tool=$GCOV -c -b out/Coverage -d out/Coverage -o /tmp/baseline -i 231fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com 241fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com# Running the binary generates the real coverage information, the .gcda files. 251fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comout/Coverage/$COMMAND 261fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comlcov $QUIET --gcov-tool=$GCOV -c -b out/Coverage -d out/Coverage -o /tmp/coverage 271fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com 281fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comlcov $QUIET -a /tmp/baseline -a /tmp/coverage -o /tmp/merged 291fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.com 30a1a097ee814d05a92487d85db8ad02e1d852fd6fcommit-bot@chromium.orggenhtml $QUIET /tmp/merged --legend -o out/Coverage/report 311fb04e25405d5ec75aea4a099819d6feca348ff6mtklein@google.comxdg-open out/Coverage/report/index.html 32