diff options
author | Marco Castelluccio <mcastelluccio@mozilla.com> | 2018-07-13 13:01:43 +0000 |
---|---|---|
committer | Marco Castelluccio <mcastelluccio@mozilla.com> | 2018-07-13 13:01:43 +0000 |
commit | 73317d031865df978796984e0d62e90c0454c208 (patch) | |
tree | 2014a2860e293677243deb2433ec6ec1efab3201 /test | |
parent | 149a9e31a1cc1c31de246c19ce8b2a99335cc556 (diff) |
Add a test with multiple BBs on the same line
Test for https://bugs.llvm.org/show_bug.cgi?id=38065.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336996 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
3 files changed, 67 insertions, 0 deletions
diff --git a/test/profile/Inputs/instrprof-gcov-multiple-bbs-single-line.c b/test/profile/Inputs/instrprof-gcov-multiple-bbs-single-line.c new file mode 100644 index 000000000..a2e187b5c --- /dev/null +++ b/test/profile/Inputs/instrprof-gcov-multiple-bbs-single-line.c @@ -0,0 +1,20 @@ +int main(void) +{ + int var; + + int a = 1; + if (a) { + var++; + } + + if (a) {} + + int b = 0; + if (b) { + var++; + } + + if (b) {} + + return 0; +} diff --git a/test/profile/Inputs/instrprof-gcov-multiple-bbs-single-line.c.gcov b/test/profile/Inputs/instrprof-gcov-multiple-bbs-single-line.c.gcov new file mode 100644 index 000000000..92532af30 --- /dev/null +++ b/test/profile/Inputs/instrprof-gcov-multiple-bbs-single-line.c.gcov @@ -0,0 +1,34 @@ +// CHECK: -: 0:Source:{{.*}}Inputs/instrprof-gcov-multiple-bbs-single-line.c +// CHECK-NEXT: -: 0:Graph:instrprof-gcov-multiple-bbs-single-line.gcno +// CHECK-NEXT: -: 0:Data:instrprof-gcov-multiple-bbs-single-line.gcda +// CHECK-NEXT: -: 0:Runs:1 +// CHECK-NEXT: -: 0:Programs:1 +// CHECK-NEXT:function main called 1 returned 100% blocks executed 80% +// CHECK-NEXT: -: 1:int main(void) +// CHECK-NEXT: -: 2:{ +// CHECK-NEXT: -: 3: int var; +// CHECK-NEXT: -: 4: +// CHECK-NEXT: 1: 5: int a = 1; +// CHECK-NEXT: 1: 6: if (a) { +// CHECK-NEXT:branch 0 taken 1 +// CHECK-NEXT:branch 1 taken 0 +// CHECK-NEXT: 1: 7: var++; +// CHECK-NEXT: 1: 8: } +// CHECK-NEXT: -: 9: +// CHECK-NEXT: 1: 10: if (a) {} +// CHECK-NEXT:branch 0 taken 1 +// CHECK-NEXT:branch 1 taken 0 +// CHECK-NEXT: -: 11: +// CHECK-NEXT: 1: 12: int b = 0; +// CHECK-NEXT: 1: 13: if (b) { +// CHECK-NEXT:branch 0 taken 0 +// CHECK-NEXT:branch 1 taken 1 +// CHECK-NEXT: #####: 14: var++; +// CHECK-NEXT: #####: 15: } +// CHECK-NEXT: -: 16: +// CHECK-NEXT: 1: 17: if (b) {} +// CHECK-NEXT:branch 0 taken 0 +// CHECK-NEXT:branch 1 taken 1 +// CHECK-NEXT: -: 18: +// CHECK-NEXT: 1: 19: return 0; +// CHECK-NEXT: -: 20:} diff --git a/test/profile/instrprof-gcov-multiple-bbs-single-line.test b/test/profile/instrprof-gcov-multiple-bbs-single-line.test new file mode 100644 index 000000000..883945518 --- /dev/null +++ b/test/profile/instrprof-gcov-multiple-bbs-single-line.test @@ -0,0 +1,13 @@ +XFAIL: * + +RUN: mkdir -p %t.d +RUN: cd %t.d + +RUN: %clang --coverage -o %t %S/Inputs/instrprof-gcov-multiple-bbs-single-line.c +RUN: test -f instrprof-gcov-multiple-bbs-single-line.gcno + +RUN: rm -f instrprof-gcov-multiple-bbs-single-line.gcda +RUN: %run %t +RUN: llvm-cov gcov -b -c instrprof-gcov-multiple-bbs-single-line.gcda +RUN: FileCheck --match-full-lines --strict-whitespace --input-file instrprof-gcov-multiple-bbs-single-line.c.gcov %S/Inputs/instrprof-gcov-multiple-bbs-single-line.c.gcov +RUN: rm instrprof-gcov-multiple-bbs-single-line.gcda |