summaryrefslogtreecommitdiff
path: root/coverage.sh
blob: 7532015ce95d9fb2c902636bf8d6322b64d0fa8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#/usr/bin/env bash 
LLVM_PROFILE_FILE=default_%m_%p.profraw 

_output=`RUSTFLAGS="$RUSTFLAGS -C instrument-coverage" cargo test --message-format=json`
_cmd="$1"; shift
llvm-profdata merge -sparse default_*.profraw -o default.profdata

llvm-cov $_cmd \
    $( \
      for file in \
        $( \
            echo $_output \
              | jq -r "select(.profile.test == true) | .filenames[]" \
              | grep -v dSYM - \
        ); \
      do \
        printf "%s %s " -object $file; \
      done \
    ) --instr-profile=default.profdata --use-color --ignore-filename-regex='/.cargo/registry' $@ # and/or other options

rm default.profdata
rm default_*.profraw