diff options
author | Marco Castelluccio <mcastelluccio@mozilla.com> | 2018-08-01 09:11:36 +0000 |
---|---|---|
committer | Marco Castelluccio <mcastelluccio@mozilla.com> | 2018-08-01 09:11:36 +0000 |
commit | 6265be6b714aa997a17cc757d06bfdee88bb85c6 (patch) | |
tree | 80adcf3e2411095f90350df634cff08b52b819db /test | |
parent | 788f62fce59ae98f741d0273759227a9bdfaa136 (diff) |
[gcov] Add test which uses fork
Test for https://bugs.llvm.org/show_bug.cgi?id=38180.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@338500 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/profile/Inputs/instrprof-gcov-fork.c | 15 | ||||
-rw-r--r-- | test/profile/Inputs/instrprof-gcov-fork.c.gcov | 23 | ||||
-rw-r--r-- | test/profile/Posix/instrprof-gcov-fork.test | 12 |
3 files changed, 50 insertions, 0 deletions
diff --git a/test/profile/Inputs/instrprof-gcov-fork.c b/test/profile/Inputs/instrprof-gcov-fork.c new file mode 100644 index 000000000..818c459c5 --- /dev/null +++ b/test/profile/Inputs/instrprof-gcov-fork.c @@ -0,0 +1,15 @@ +#include <unistd.h> + +void func1() {} +void func2() {} + +int main(void) +{ + func1(); + + fork(); + + func2(); + + return 0; +} diff --git a/test/profile/Inputs/instrprof-gcov-fork.c.gcov b/test/profile/Inputs/instrprof-gcov-fork.c.gcov new file mode 100644 index 000000000..9591f62ed --- /dev/null +++ b/test/profile/Inputs/instrprof-gcov-fork.c.gcov @@ -0,0 +1,23 @@ +// CHECK: -: 0:Source:{{.*}}Inputs/instrprof-gcov-fork.c +// CHECK-NEXT: -: 0:Graph:instrprof-gcov-fork.gcno +// CHECK-NEXT: -: 0:Data:instrprof-gcov-fork.gcda +// CHECK-NEXT: -: 0:Runs:1 +// CHECK-NEXT: -: 0:Programs:1 +// CHECK-NEXT: -: 1:#include <unistd.h> +// CHECK-NEXT: -: 2: +// CHECK-NEXT:function func1 called 1 returned 100% blocks executed 100% +// CHECK-NEXT: 1: 3:void func1() {} +// CHECK-NEXT:function func2 called 2 returned 100% blocks executed 100% +// CHECK-NEXT: 2: 4:void func2() {} +// CHECK-NEXT: -: 5: +// CHECK-NEXT:function main called 1 returned 100% blocks executed 100% +// CHECK-NEXT: -: 6:int main(void) +// CHECK-NEXT: -: 7:{ +// CHECK-NEXT: 1: 8: func1(); +// CHECK-NEXT: -: 9: +// CHECK-NEXT: 1: 10: fork(); +// CHECK-NEXT: -: 11: +// CHECK-NEXT: 2: 12: func2(); +// CHECK-NEXT: -: 13: +// CHECK-NEXT: 2: 14: return 0; +// CHECK-NEXT: -: 15:} diff --git a/test/profile/Posix/instrprof-gcov-fork.test b/test/profile/Posix/instrprof-gcov-fork.test new file mode 100644 index 000000000..436d7e663 --- /dev/null +++ b/test/profile/Posix/instrprof-gcov-fork.test @@ -0,0 +1,12 @@ +XFAIL: * + +RUN: mkdir -p %t.d +RUN: cd %t.d + +RUN: %clang --coverage -o %t %S/../Inputs/instrprof-gcov-fork.c +RUN: test -f instrprof-gcov-fork.gcno + +RUN: rm -f instrprof-gcov-fork.gcda +RUN: %run %t +RUN: llvm-cov gcov -b -c instrprof-gcov-fork.gcda +RUN: FileCheck --match-full-lines --strict-whitespace --input-file instrprof-gcov-fork.c.gcov %S/../Inputs/instrprof-gcov-fork.c.gcov |