@@ -89,7 +89,9 @@ describe("The lcov parser", () => {
89
89
assert . strictEqual ( fileCov . statementCoverage . covered , 11 ) ;
90
90
} ) ;
91
91
it ( "branch coverage" , ( ) => {
92
- assert ( fileCov . branchCoverage === undefined ) ;
92
+ assert ( fileCov . branchCoverage !== undefined ) ;
93
+ assert . strictEqual ( fileCov . branchCoverage . total , 6 ) ;
94
+ assert . strictEqual ( fileCov . branchCoverage . covered , 3 ) ;
93
95
} ) ;
94
96
it ( "function coverage details" , ( ) => {
95
97
const initFunc = getFunctionByLine ( fileCov , 24 ) ;
@@ -109,6 +111,12 @@ describe("The lcov parser", () => {
109
111
assert . equal ( getLineCoverageForLine ( fileCov , 38 ) . executed , 0 ) ;
110
112
assert . equal ( getLineCoverageForLine ( fileCov , 40 ) . executed , 1 ) ;
111
113
} ) ;
114
+ it ( "branch coverage data" , ( ) => {
115
+ const branchCoverage = getLineCoverageForLine ( fileCov , 37 ) . branches ;
116
+ assert . equal ( branchCoverage . length , 2 ) ;
117
+ assert . equal ( branchCoverage [ 0 ] . executed , 1 ) ;
118
+ assert . equal ( branchCoverage [ 1 ] . executed , 0 ) ;
119
+ } ) ;
112
120
} ) ;
113
121
114
122
describe ( "parses C++ coverage data" , ( ) => {
@@ -128,7 +136,9 @@ describe("The lcov parser", () => {
128
136
assert . strictEqual ( fileCov . statementCoverage . covered , 505 ) ;
129
137
} ) ;
130
138
it ( "branch coverage" , ( ) => {
131
- assert ( fileCov . branchCoverage === undefined ) ;
139
+ assert ( fileCov . branchCoverage !== undefined ) ;
140
+ assert . strictEqual ( fileCov . branchCoverage . total , 2560 ) ;
141
+ assert . strictEqual ( fileCov . branchCoverage . covered , 843 ) ;
132
142
} ) ;
133
143
it ( "function coverage details" , ( ) => {
134
144
const initFunc = getFunctionByLine ( fileCov , 71 ) ;
@@ -141,6 +151,14 @@ describe("The lcov parser", () => {
141
151
assert . equal ( getLineCoverageForLine ( fileCov , 178 ) . executed , 0 ) ;
142
152
assert . equal ( getLineCoverageForLine ( fileCov , 193 ) . executed , 4 ) ;
143
153
} ) ;
154
+ it ( "branch coverage data" , ( ) => {
155
+ const branchCoverage = getLineCoverageForLine ( fileCov , 479 ) . branches ;
156
+ assert . equal ( branchCoverage . length , 2 ) ;
157
+ assert . equal ( branchCoverage [ 0 ] . executed , 1 ) ;
158
+ assert . equal ( branchCoverage [ 1 ] . executed , 0 ) ;
159
+ const branchCoverage2 = getLineCoverageForLine ( fileCov , 481 ) . branches ;
160
+ assert . equal ( branchCoverage2 . length , 12 ) ;
161
+ } ) ;
144
162
} ) ;
145
163
146
164
describe ( "parses Rust coverage data" , ( ) => {
@@ -161,6 +179,8 @@ describe("The lcov parser", () => {
161
179
assert . strictEqual ( fileCov . statementCoverage . covered , 426 ) ;
162
180
} ) ;
163
181
it ( "branch coverage" , ( ) => {
182
+ // Rust has no branch coverage data, as of writing this test case.
183
+ // Also see https://github.com/rust-lang/rust/issues/79649
164
184
assert ( fileCov . branchCoverage === undefined ) ;
165
185
} ) ;
166
186
it ( "function coverage details" , ( ) => {
@@ -194,6 +214,7 @@ describe("The lcov parser", () => {
194
214
assert . strictEqual ( fileCov . statementCoverage . covered , 133 ) ;
195
215
} ) ;
196
216
it ( "branch coverage" , ( ) => {
217
+ // Go has no branch coverage data.
197
218
assert ( fileCov . branchCoverage === undefined ) ;
198
219
} ) ;
199
220
it ( "line coverage details" , ( ) => {
0 commit comments