xref: /llvm-project/clang/test/Profile/coverage-prefix-map.c (revision d7fa92126cc398b993f301273816739b23ed8740)
18459b8efSPetr Hosek // %s expands to an absolute path, so to test relative paths we need to create a
28459b8efSPetr Hosek // clean directory, put the source there, and cd into it.
38459b8efSPetr Hosek // RUN: rm -rf %t
48459b8efSPetr Hosek // RUN: mkdir -p %t/root/nested
50dd49a56SAaron Ballman // RUN: echo "void f1(void) {}" > %t/root/nested/coverage-prefix-map.c
68459b8efSPetr Hosek // RUN: cd %t/root
78459b8efSPetr Hosek 
88459b8efSPetr Hosek // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -mllvm -enable-name-compression=false -main-file-name coverage-prefix-map.c %t/root/nested/coverage-prefix-map.c -o - | FileCheck --check-prefix=ABSOLUTE %s
98459b8efSPetr Hosek //
108459b8efSPetr Hosek // ABSOLUTE: @__llvm_coverage_mapping = {{.*"\\02.*root.*nested.*coverage-prefix-map\.c}}
118459b8efSPetr Hosek 
128459b8efSPetr Hosek // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -mllvm -enable-name-compression=false -main-file-name coverage-prefix-map.c ../root/nested/coverage-prefix-map.c -o - | FileCheck --check-prefix=RELATIVE %s
138459b8efSPetr Hosek //
148459b8efSPetr Hosek // RELATIVE: @__llvm_coverage_mapping = {{.*"\\02.*}}..{{/|\\+}}root{{/|\\+}}nested{{.*coverage-prefix-map\.c}}
158459b8efSPetr Hosek 
168459b8efSPetr Hosek // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -mllvm -enable-name-compression=false -main-file-name coverage-prefix-map.c %t/root/nested/coverage-prefix-map.c -fcoverage-prefix-map=%/t/root=. -o - | FileCheck --check-prefix=COVERAGE-PREFIX-MAP %s
178459b8efSPetr Hosek // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -mllvm -enable-name-compression=false -main-file-name coverage-prefix-map.c ../root/nested/coverage-prefix-map.c -fcoverage-prefix-map=../root=. -o - | FileCheck --check-prefix=COVERAGE-PREFIX-MAP %s
188459b8efSPetr Hosek // COVERAGE-PREFIX-MAP: @__llvm_coverage_mapping = {{.*"\\02.*}}.{{/|\\+}}nested{{.*coverage-prefix-map\.c}}
198459b8efSPetr Hosek 
208459b8efSPetr Hosek // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -mllvm -enable-name-compression=false -main-file-name coverage-prefix-map.c %t/root/nested/coverage-prefix-map.c -fcoverage-compilation-dir=/custom -fcoverage-prefix-map=/custom=/nonsense -o - | FileCheck --check-prefix=COVERAGE-COMPILATION-DIR %s
218459b8efSPetr Hosek // COVERAGE-COMPILATION-DIR: @__llvm_coverage_mapping = {{.*"\\02.*}}nonsense
22*d7fa9212SGulfem Savrun Yeniceri 
23*d7fa9212SGulfem Savrun Yeniceri // Test that last -fcoverage-prefix-map option (-fcoverage-prefix-map==newpath) is applied.
24*d7fa9212SGulfem Savrun Yeniceri // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -mllvm -enable-name-compression=false -main-file-name coverage-prefix-map.c %t/root/nested/coverage-prefix-map.c -fcoverage-prefix-map=%/t/root=. -fcoverage-prefix-map==newpath -o - | FileCheck --check-prefix=COVERAGE-PREFIX-MAP-ORDER %s
25*d7fa9212SGulfem Savrun Yeniceri // COVERAGE-PREFIX-MAP-ORDER: @__llvm_coverage_mapping = {{.*"\\02.*newpath.*root.*nested.*coverage-prefix-map\.c}}
26*d7fa9212SGulfem Savrun Yeniceri 
27*d7fa9212SGulfem Savrun Yeniceri // Test that last -fcoverage-prefix-map option (-fcoverage-prefix-map=%/t/root=.) is applied.
28*d7fa9212SGulfem Savrun Yeniceri // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -emit-llvm -mllvm -enable-name-compression=false -main-file-name coverage-prefix-map.c %t/root/nested/coverage-prefix-map.c -fcoverage-prefix-map==newpath -fcoverage-prefix-map=%/t/root=. -o - | FileCheck --check-prefix=COVERAGE-PREFIX-MAP-REORDER %s
29*d7fa9212SGulfem Savrun Yeniceri // COVERAGE-PREFIX-MAP-REORDER: @__llvm_coverage_mapping =
30*d7fa9212SGulfem Savrun Yeniceri // COVERAGE-PREFIX-MAP-REORDER-NOT: newpath
31*d7fa9212SGulfem Savrun Yeniceri // COVERAGE-PREFIX-MAP-REORDER-SAME: nested{{.*coverage-prefix-map\.c}}
32