@@ -50,72 +50,68 @@ fn normalize_platform_differences() {
5050} 
5151
5252/// Test for anonymizing line numbers in coverage reports, especially for 
53- /// branch  regions. 
53+ /// MC/DC  regions. 
5454/// 
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  
5656/// coverage in the actual coverage test suite. 
5757#[ test]  
5858fn  anonymize_coverage_line_numbers ( )  { 
5959    let  anon = |coverage| TestCx :: anonymize_coverage_line_numbers ( coverage) ; 
6060
6161    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 
6465  ------------------ 
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+   | 
6881  ------------------ 
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|} 
7087"# ; 
7188
7289    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 
7593  ------------------ 
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+   | 
118109  ------------------ 
110+    LL|      0|        say("a and b"); 
111+    LL|      2|    } else { 
112+    LL|      2|        say("not both"); 
113+    LL|      2|    } 
114+    LL|      2|} 
119115"# ; 
120116
121117    assert_eq ! ( anon( input) ,  expected) ; 
0 commit comments