@@ -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