llvm-project/llvm/test/tools/llvm-cov/coverage-prefix-map.test
Petr Hosek 0204fd25b0 [CoverageMapping] Remove dots from paths inside the profile
We already remove dots from collected paths and path mappings. This
makes it difficult to match paths inside the profile which contain
dots. For example, we would never match /path/to/../file.c because
the collected path is always be normalized to /path/file.c. This
change enables dot removal for paths inside the profile to address
the issue.

Differential Revision: https://reviews.llvm.org/D123164
2022-06-28 20:53:01 -07:00

28 lines
1.1 KiB
Plaintext

# RUN: llvm-cov report -path-equivalence=.,%S/Inputs/coverage_prefix_map \
# RUN: -instr-profile %S/Inputs/coverage_prefix_map/main.profdata \
# RUN: %S/Inputs/coverage_prefix_map/main.covmapping \
# RUN: %S/Inputs/coverage_prefix_map/bar.h \
# RUN: | FileCheck --check-prefix=REPORT --implicit-check-not=main.c %s
# RUN: llvm-cov export -format lcov -path-equivalence=.,%S/Inputs/coverage_prefix_map \
# RUN: -instr-profile %S/Inputs/coverage_prefix_map/main.profdata \
# RUN: %S/Inputs/coverage_prefix_map/main.covmapping \
# RUN: %S/Inputs/coverage_prefix_map/bar.h \
# RUN: | FileCheck --check-prefix=LCOV --implicit-check-not=main.c %s
# REPORT: {{^}}bar.h{{.*}}
# REPORT: {{^}}TOTAL{{.*}}100.00%
# LCOV: SF:bar.h
# LCOV-NOT: SF
Instructions for regenerating the test:
# cd %S/Inputs/coverage_prefix_map
cp -r . /tmp/coverage_prefix_map
clang -fprofile-instr-generate -mllvm -enable-name-compression=false -fcoverage-mapping -fcoverage-prefix-map=$PWD=. main.cc -o main
LLVM_PROFILE_FILE="main.raw" ./main
llvm-profdata merge main.raw -o main.profdata
llvm-cov convert-for-testing ./main -o ./main.covmapping
rm main main.raw