[Coverage] add test cases for coverage testing
1. One test covering coverage-mapping interfaction with linker GC 2. one test covering coverage-mapping with shared libaries llvm-svn: 257782
This commit is contained in:
parent
5f04f926e9
commit
944cd4d318
|
@ -1,7 +1,7 @@
|
|||
#include "instrprof-dynamic-header.h"
|
||||
void a() {
|
||||
if (true) {
|
||||
bar<void>(1);
|
||||
bar<char>(1);
|
||||
}
|
||||
void a() { // COV: 1| [[@LINE]]|void a
|
||||
if (true) { // COV: 1| [[@LINE]]| if
|
||||
bar<void>(1); // COV: 1| [[@LINE]]| bar
|
||||
bar<char>(1); // COV: 1| [[@LINE]]| bar
|
||||
} // COV: 1| [[@LINE]]| }
|
||||
}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
RUN: mkdir -p %t.d
|
||||
RUN: %clang_profgen -fdata-sections -ffunction-sections -fcoverage-mapping -c -o %t.d/a.shared.o -fPIC %S/../Inputs/instrprof-dynamic-a.cpp
|
||||
RUN: %clang_profgen -fdata-sections -ffunction-sections -fuse-ld=gold -Wl,--gc-sections -fcoverage-mapping -o %t.d/a.shared -fPIC -shared %S/../Inputs/instrprof-dynamic-a.cpp
|
||||
RUN: %clang_profgen -fdata-sections -ffunction-sections -fuse-ld=gold -Wl,--gc-sections -o %t-shared -fPIC -rpath %t.d %t.d/a.shared %S/../Inputs/instrprof-dynamic-b.cpp %S/../Inputs/instrprof-dynamic-main.cpp
|
||||
|
||||
RUN: %clang_profgen -fdata-sections -ffunction-sections -fuse-ld=gold -Wl,--gc-sections -o %t-static %t.d/a.shared.o %S/../Inputs/instrprof-dynamic-b.cpp %S/../Inputs/instrprof-dynamic-main.cpp
|
||||
|
||||
RUN: env LLVM_PROFILE_FILE=%t-static.profraw %run %t-static
|
||||
RUN: env LLVM_PROFILE_FILE=%t-shared.profraw %run %t-shared
|
||||
|
||||
RUN: llvm-profdata merge -o %t-static.profdata %t-static.profraw
|
||||
RUN: llvm-profdata merge -o %t-shared.profdata %t-shared.profraw
|
||||
|
||||
RUN: llvm-cov show -instr-profile %t-shared.profdata %t.d/a.shared | FileCheck --check-prefix=COV %S/../Inputs/instrprof-dynamic-a.cpp
|
||||
RUN: llvm-cov show -instr-profile %t-static.profdata %t-static | FileCheck --check-prefix=COV %S/../Inputs/instrprof-dynamic-a.cpp
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
// RUN: %clang_profgen -fuse-ld=gold -O2 -fdata-sections -ffunction-sections -fprofile-instr-generate -fcoverage-mapping -Wl,--gc-sections -o %t %s
|
||||
// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t
|
||||
// RUN: llvm-profdata merge -o %t.profdata %t.profraw
|
||||
// RUN: llvm-cov show %t -instr-profile %t.profdata -filename-equivalence 2>&1 | FileCheck %s
|
||||
//
|
||||
// RUN: %clang_profgen -fuse-ld=gold -O2 -fdata-sections -ffunction-sections -fPIE -pie -fprofile-instr-generate -fcoverage-mapping -Wl,--gc-sections -o %t.pie %s
|
||||
// RUN: env LLVM_PROFILE_FILE=%t.pie.profraw %run %t.pie
|
||||
// RUN: llvm-profdata merge -o %t.pie.profdata %t.pie.profraw
|
||||
// RUN: llvm-cov show %t.pie -instr-profile %t.pie.profdata -filename-equivalence 2>&1 | FileCheck %s
|
||||
|
||||
void foo(bool cond) { // CHECK: 1| [[@LINE]]|void foo(
|
||||
if (cond) { // CHECK: 1| [[@LINE]]| if (cond) {
|
||||
} // CHECK: 0| [[@LINE]]| }
|
||||
} // CHECK: 1| [[@LINE]]|}
|
||||
void bar() { // CHECK: 1| [[@LINE]]|void bar() {
|
||||
} // CHECK: 1| [[@LINE]]|}
|
||||
void func() { // CHECK: 0| [[@LINE]]|void func(
|
||||
} // CHECK: 0| [[@LINE]]|}
|
||||
int main() { // CHECK: 1| [[@LINE]]|int main(
|
||||
foo(false); // CHECK: 1| [[@LINE]]| foo(
|
||||
bar(); // CHECK: 1| [[@LINE]]| bar(
|
||||
return 0; // CHECK: 1| [[@LINE]]| return
|
||||
} // CHECK: 1| [[@LINE]]|}
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue