Brian Silverman | 5f6f276 | 2022-08-13 19:30:05 -0700 | [diff] [blame] | 1 | #!/usr/bin/env bash |
| 2 | |
| 3 | set -euo pipefail |
| 4 | |
| 5 | if [[ -n "${VERBOSE_COVERAGE:-}" ]]; then |
| 6 | set -x |
| 7 | fi |
| 8 | |
Adam Snaider | 1c095c9 | 2023-07-08 02:09:58 -0400 | [diff] [blame^] | 9 | if [[ "${RUNFILES_DIR:0:1}" != "/" ]]; then |
| 10 | if [[ -n "${ROOT}" ]]; then |
| 11 | RUNFILES_DIR="${ROOT}/${RUNFILES_DIR}" |
| 12 | fi |
| 13 | fi |
| 14 | |
Brian Silverman | 5f6f276 | 2022-08-13 19:30:05 -0700 | [diff] [blame] | 15 | readonly profdata_file=$COVERAGE_DIR/coverage.profdata |
| 16 | |
Adam Snaider | 1c095c9 | 2023-07-08 02:09:58 -0400 | [diff] [blame^] | 17 | "$RUNFILES_DIR/$RUST_LLVM_PROFDATA" \ |
Brian Silverman | 5f6f276 | 2022-08-13 19:30:05 -0700 | [diff] [blame] | 18 | merge \ |
| 19 | --sparse "$COVERAGE_DIR"/*.profraw \ |
| 20 | -output "$profdata_file" |
| 21 | |
Adam Snaider | 1c095c9 | 2023-07-08 02:09:58 -0400 | [diff] [blame^] | 22 | "$RUNFILES_DIR/$RUST_LLVM_COV" \ |
Brian Silverman | 5f6f276 | 2022-08-13 19:30:05 -0700 | [diff] [blame] | 23 | export \ |
| 24 | -format=lcov \ |
| 25 | -instr-profile "$profdata_file" \ |
| 26 | -ignore-filename-regex='.*external/.+' \ |
| 27 | -ignore-filename-regex='/tmp/.+' \ |
| 28 | -path-equivalence=.,"$ROOT" \ |
| 29 | "$RUNFILES_DIR/$TEST_WORKSPACE/$TEST_BINARY" \ |
| 30 | @"$COVERAGE_MANIFEST" \ |
Adam Snaider | 1c095c9 | 2023-07-08 02:09:58 -0400 | [diff] [blame^] | 31 | | sed 's#/proc/self/cwd/##' > "$COVERAGE_DIR/rust_coverage.dat" |
| 32 | |
| 33 | # Bazel doesn't support LLVM profdata coverage amongst other coverage formats. |
| 34 | rm "$profdata_file" |