xref: /llvm-project/llvm/test/tools/llvm-cov/mcdc-general-none.test (revision 0bf4f82f661817c79bd538c82c99515837cf1cf8)
1// Test visualization of general MC/DC constructs with 0 executed test vectors.
2
3// RUN: llvm-profdata merge %S/Inputs/mcdc-general-none.proftext -o %t.profdata
4// RUN: llvm-cov show --show-mcdc %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s
5// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT
6
7//      CHECK: test(bool
8
9//      CHECK:  ------------------
10// CHECK-NEXT:  |---> MC/DC Decision Region (12:7) to (12:27)
11// CHECK-NEXT:  |
12// CHECK-NEXT:  |  Number of Conditions: 4
13// CHECK-NEXT:  |     Condition C1 --> (12:8)
14// CHECK-NEXT:  |     Condition C2 --> (12:13)
15// CHECK-NEXT:  |     Condition C3 --> (12:20)
16// CHECK-NEXT:  |     Condition C4 --> (12:25)
17// CHECK-NEXT:  |
18// CHECK-NEXT:  |  Executed MC/DC Test Vectors:
19// CHECK-NEXT:  |
20// CHECK-NEXT:  |  None.
21// CHECK-NEXT:  |
22// CHECK-NEXT:  |  C1-Pair: not covered
23// CHECK-NEXT:  |  C2-Pair: not covered
24// CHECK-NEXT:  |  C3-Pair: not covered
25// CHECK-NEXT:  |  C4-Pair: not covered
26// CHECK-NEXT:  |  MC/DC Coverage for Decision: 0.00%
27// CHECK-NEXT:  |
28// CHECK-NEXT:  ------------------
29
30
31// Turn off MC/DC visualization.
32// RUN: llvm-cov show %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=NOMCDC
33// NOMCDC-NOT: MC/DC Decision Region
34
35//      REPORT: Name                        Regions    Miss   Cover     Lines    Miss   Cover  Branches    Miss   Cover    MC/DC Conditions    Miss   Cover
36// REPORT-NEXT: -------------------------------------------------------------------------------------------------------------------------------------------
37// REPORT-NEXT: _Z4testbbbb                      25       0 100.00%         9       0 100.00%        24       2  91.67%                  12      12   0.00%
38// REPORT-NEXT: main                              1       0 100.00%        11       0 100.00%         0       0   0.00%                   0       0   0.00%
39// REPORT-NEXT: ---
40// REPORT-NEXT: TOTAL                            26       0 100.00%        20       0 100.00%        24       2  91.67%                  12      12   0.00%
41
42// Turn off MC/DC summary.
43// RUN: llvm-cov report %S/Inputs/mcdc-general.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT_NOMCDC
44// REPORT_NOMCDC-NOT: TOTAL{{.*}}12                   12    0.00%
45
46
47// Test file-level report.
48// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=FILEREPORT
49// FILEREPORT: TOTAL{{.*}}12                   12    0.00%
50
51
52// Test html output.
53// RUN: rm -rf %t.html.dir
54// RUN: llvm-cov show --show-mcdc-summary --show-mcdc %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs -format html -o %t.html.dir
55// RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/mcdc-general.cpp.html %s
56// HTML-COUNT-4: MC/DC Decision Region (<span class='line-number'><a href='#L{{[0-9]+}}'><span>
57
58// RUN: FileCheck -check-prefix HTML-INDEX -input-file %t.html.dir/index.html %s
59// HTML-INDEX-LABEL: <table>
60// HTML-INDEX: <td class='column-entry-bold'>Filename</td>
61// HTML-INDEX: <td class='column-entry-bold'>Function Coverage</td>
62// HTML-INDEX: <td class='column-entry-bold'>Line Coverage</td>
63// HTML-INDEX: <td class='column-entry-bold'>Region Coverage</td>
64// HTML-INDEX: <td class='column-entry-bold'>Branch Coverage</td>
65// HTML-INDEX: <td class='column-entry-bold'>MC/DC</td>
66// HTML-INDEX: <a href='coverage{{.*}}mcdc-general.cpp.html'{{.*}}mcdc-general.cpp</a>
67// HTML-INDEX: <td class='column-entry-green'>
68// HTML-INDEX: 100.00% (2/2)
69// HTML-INDEX: 100.00% (20/20)
70// HTML-INDEX: 100.00% (26/26)
71// HTML-INDEX: 91.67% (22/24)
72// HTML-INDEX: 0.00% (0/12)
73// HTML-INDEX: Totals
74
75# How to regenerate Inputs/mcdc-general-none.proftext:
76# Copy Inputs/mcdc-general.proftext and replace all bitmap values with 0.
77