diff options
Diffstat (limited to 'llvm/test/tools/llvm-cov')
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/multiple_objects/header.h | 29 | ||||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/multiple_objects/merged.profdata | bin | 0 -> 1488 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.cc | 14 | ||||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.covmapping | bin | 0 -> 492 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.cc | 20 | ||||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.covmapping | bin | 0 -> 384 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-cov/multiple-objects.test | 17 |
7 files changed, 80 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/header.h b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/header.h new file mode 100644 index 00000000000..03b37cd2dbb --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/header.h @@ -0,0 +1,29 @@ +static inline void f1() { +#ifdef DEF + if (false && false) + return; + + if (true || false || true) + return; + + if (true && false) + return; +#endif +} + +template<typename T> +void f2(T **x) { +#ifdef DEF + if (false && false) + *x = nullptr; + + if (true || false || true) + *x = nullptr; + + if (true && false) + *x = nullptr; +#endif +} + +static inline void f3() { +} diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/merged.profdata b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/merged.profdata Binary files differnew file mode 100644 index 00000000000..eeaa4eb45c8 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/merged.profdata diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.cc b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.cc new file mode 100644 index 00000000000..835db293f69 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.cc @@ -0,0 +1,14 @@ +#define DEF +#include "header.h" + +int main() { + f1(); + + int *x; + f2(&x); + + float *y; + f2(&y); + + return 0; +} diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.covmapping b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.covmapping Binary files differnew file mode 100644 index 00000000000..641bdb441c2 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.covmapping diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.cc b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.cc new file mode 100644 index 00000000000..52965599a3a --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.cc @@ -0,0 +1,20 @@ +#undef DEF +#include "header.h" + +static int foo() { + return 0; +} + +int main() { + f1(); + + long *x; + f2(&x); + + double *y; + f2(&y); + + f3(); + + return foo(); +} diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.covmapping b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.covmapping Binary files differnew file mode 100644 index 00000000000..f26caea7480 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.covmapping diff --git a/llvm/test/tools/llvm-cov/multiple-objects.test b/llvm/test/tools/llvm-cov/multiple-objects.test new file mode 100644 index 00000000000..f23a16d4cac --- /dev/null +++ b/llvm/test/tools/llvm-cov/multiple-objects.test @@ -0,0 +1,17 @@ +RUN: llvm-cov report -instr-profile %S/Inputs/multiple_objects/merged.profdata \ +RUN: %S/Inputs/multiple_objects/use_2.covmapping \ +RUN: -object %S/Inputs/multiple_objects/use_1.covmapping | FileCheck -check-prefix=REPORT %s + +REPORT: Filename{{ +}}Regions{{ +}}Missed Regions{{ +}}Cover +REPORT-NEXT: --- +REPORT-NEXT: header.h{{ +}}25{{ +}}14{{ +}}44.00% + +Instructions for regenerating the test: + +clang -std=c++11 -mllvm -enable-name-compression=false -fprofile-instr-generate -fcoverage-mapping use_1.cc -o use_1 +clang -std=c++11 -mllvm -enable-name-compression=false -fprofile-instr-generate -fcoverage-mapping use_2.cc -o use_2 +LLVM_PROFILE_FILE="use_1.raw" ./use_1 +LLVM_PROFILE_FILE="use_2.raw" ./use_2 +llvm-profdata merge use_{1,2}.raw -o merged.profdata +llvm-cov convert-for-testing ./use_1 -o ./use_1.covmapping +llvm-cov convert-for-testing ./use_2 -o ./use_2.covmapping |