@@ -50,72 +50,68 @@ fn normalize_platform_differences() {
50
50
}
51
51
52
52
/// Test for anonymizing line numbers in coverage reports, especially for
53
- /// branch regions.
53
+ /// MC/DC regions.
54
54
///
55
- /// FIXME(#119681 ): This test can be removed when we have examples of branch
55
+ /// FIXME(#123409 ): This test can be removed when we have examples of MC/DC
56
56
/// coverage in the actual coverage test suite.
57
57
#[ test]
58
58
fn anonymize_coverage_line_numbers ( ) {
59
59
let anon = |coverage| TestCx :: anonymize_coverage_line_numbers ( coverage) ;
60
60
61
61
let input = r#"
62
- 6| 3|fn print_size<T>() {
63
- 7| 3| if std::mem::size_of::<T>() > 4 {
62
+ 7| 2|fn mcdc_check_neither(a: bool, b: bool) {
63
+ 8| 2| if a && b {
64
+ ^0
64
65
------------------
65
- | Branch (7:8): [True: 0, False: 1]
66
- | Branch (7:8): [True: 0, False: 1]
67
- | Branch (7:8): [True: 1, False: 0]
66
+ |---> MC/DC Decision Region (8:8) to (8:14)
67
+ |
68
+ | Number of Conditions: 2
69
+ | Condition C1 --> (8:8)
70
+ | Condition C2 --> (8:13)
71
+ |
72
+ | Executed MC/DC Test Vectors:
73
+ |
74
+ | C1, C2 Result
75
+ | 1 { F, - = F }
76
+ |
77
+ | C1-Pair: not covered
78
+ | C2-Pair: not covered
79
+ | MC/DC Coverage for Decision: 0.00%
80
+ |
68
81
------------------
69
- 8| 1| println!("size > 4");
82
+ 9| 0| say("a and b");
83
+ 10| 2| } else {
84
+ 11| 2| say("not both");
85
+ 12| 2| }
86
+ 13| 2|}
70
87
"# ;
71
88
72
89
let expected = r#"
73
- LL| 3|fn print_size<T>() {
74
- LL| 3| if std::mem::size_of::<T>() > 4 {
90
+ LL| 2|fn mcdc_check_neither(a: bool, b: bool) {
91
+ LL| 2| if a && b {
92
+ ^0
75
93
------------------
76
- | Branch (LL:8): [True: 0, False: 1]
77
- | Branch (LL:8): [True: 0, False: 1]
78
- | Branch (LL:8): [True: 1, False: 0]
79
- ------------------
80
- LL| 1| println!("size > 4");
81
- "# ;
82
-
83
- assert_eq ! ( anon( input) , expected) ;
84
-
85
- //////////
86
-
87
- let input = r#"
88
- 12| 3|}
89
- ------------------
90
- | branch_generics::print_size::<()>:
91
- | 6| 1|fn print_size<T>() {
92
- | 7| 1| if std::mem::size_of::<T>() > 4 {
93
- | ------------------
94
- | | Branch (7:8): [True: 0, False: 1]
95
- | ------------------
96
- | 8| 0| println!("size > 4");
97
- | 9| 1| } else {
98
- | 10| 1| println!("size <= 4");
99
- | 11| 1| }
100
- | 12| 1|}
101
- ------------------
102
- "# ;
103
-
104
- let expected = r#"
105
- LL| 3|}
106
- ------------------
107
- | branch_generics::print_size::<()>:
108
- | LL| 1|fn print_size<T>() {
109
- | LL| 1| if std::mem::size_of::<T>() > 4 {
110
- | ------------------
111
- | | Branch (LL:8): [True: 0, False: 1]
112
- | ------------------
113
- | LL| 0| println!("size > 4");
114
- | LL| 1| } else {
115
- | LL| 1| println!("size <= 4");
116
- | LL| 1| }
117
- | LL| 1|}
94
+ |---> MC/DC Decision Region (LL:8) to (LL:14)
95
+ |
96
+ | Number of Conditions: 2
97
+ | Condition C1 --> (LL:8)
98
+ | Condition C2 --> (LL:13)
99
+ |
100
+ | Executed MC/DC Test Vectors:
101
+ |
102
+ | C1, C2 Result
103
+ | 1 { F, - = F }
104
+ |
105
+ | C1-Pair: not covered
106
+ | C2-Pair: not covered
107
+ | MC/DC Coverage for Decision: 0.00%
108
+ |
118
109
------------------
110
+ LL| 0| say("a and b");
111
+ LL| 2| } else {
112
+ LL| 2| say("not both");
113
+ LL| 2| }
114
+ LL| 2|}
119
115
"# ;
120
116
121
117
assert_eq ! ( anon( input) , expected) ;
0 commit comments