GCC Code Coverage Report


Directory: .
File: main.cpp
Date: 0000-00-00 00:00:00
Warnings: 3 unchecked decisions!
Exec Total Coverage
Lines: 145 169 85.8%
Functions: 32 32 100.0%
Branches: 45 87 51.7%
Decisions: 33 65 50.8%

Line Branch Decision Exec Source
1 #include "stdint.h"
2 #include "stdbool.h"
3
4 1 bool checkBiggerTrue(int a)
5 {
6
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
1 if (a > 5)
7 {
8 1 return true;
9 }
10 else
11 {
12 return false;
13 }
14 }
15
16 1 bool checkBiggerFalse(int a)
17 {
18
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
1 if (a > 5)
19 {
20 return true;
21 }
22 else
23 {
24 1 return false;
25 }
26 }
27
28 2 bool checkBiggerBoth(int a)
29 {
30
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2/2
✓ Decision 'true' taken 1 times.
✓ Decision 'false' taken 1 times.
2 if (a > 5)
31 {
32 1 return true;
33 }
34 else
35 {
36 1 return false;
37 }
38 }
39
40 1 bool checkSmallerTrue(int a)
41 {
42
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
1 if (a < 5)
43 {
44 1 return true;
45 }
46 else
47 {
48 return false;
49 }
50 }
51
52 1 bool checkSmallerFalse(int a)
53 {
54
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
1 if (a < 5)
55 {
56 return true;
57 }
58 else
59 {
60 1 return false;
61 }
62 }
63
64 1 bool checkEqualTrue(int a)
65 {
66
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
1 if (a == 5)
67 {
68 1 return true;
69 }
70 else
71 {
72 return false;
73 }
74 }
75
76 1 bool checkEqualFalse(int a)
77 {
78
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
1 if (a == 5)
79 {
80 return true;
81 }
82 else
83 {
84 1 return false;
85 }
86 }
87
88 1 bool checkNotEqualTrue(int a)
89 {
90
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
1 if (a != 5)
91 {
92 1 return true;
93 }
94 else
95 {
96 return false;
97 }
98 }
99
100 1 bool checkNotEqualFalse(int a)
101 {
102
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
1 if (a != 5)
103 {
104 return true;
105 }
106 else
107 {
108 1 return false;
109 }
110 }
111
112 1 bool checkComplexTrue(int a)
113 {
114
3/6
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
1 if (a == 5 || (a > 5 && a < 10))
115 {
116 1 return true;
117 }
118 else
119 {
120 return false;
121 }
122 }
123
124 1 bool checkComplexFalse(int a)
125 {
126
2/6
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
1 if (a == 5 || (a > 5 && a < 10))
127 {
128 return true;
129 }
130 else
131 {
132 1 return false;
133 }
134 }
135
136 1 bool checkElseIf1(int a)
137 {
138
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
1 if (a == 5)
139 {
140 1 return true;
141 }
142
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
else if (a == 9)
143 {
144 return true;
145 }
146 else
147 {
148 return false;
149 }
150 }
151
152 1 bool checkElseIf2(int a)
153 {
154
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
1 if (a == 5)
155 {
156 return true;
157 }
158
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
1 else if (a == 10)
159 {
160 1 return true;
161 }
162 else
163 {
164 return false;
165 }
166 }
167
168 1 bool checkElseIf3(int a)
169 {
170
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
1 if (a == 5)
171 {
172 return true;
173 }
174
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
1 else if (a == 10)
175 {
176 return true;
177 }
178 else
179 {
180 1 return false;
181 }
182 }
183
184 1 bool checkSwitch1(int a)
185 {
186
1/3
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
1 switch (a)
187 {
188
1/1
✓ Decision 'true' taken 1 times.
1 case 5: return true; break;
189 /* Comment */
190 case 10:
191 /* Comment */
192
0/1
✗ Decision 'true' not taken.
return true;
193 /* Comment */
194 break;
195 /* Comment */
196 default:
197 /* Comment */
198
0/1
✗ Decision 'true' not taken.
return false;
199 /* Comment */
200 break;
201 /* Comment */
202 }
203 }
204
205 1 bool checkSwitch2(int a)
206 {
207
1/3
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 switch (a)
208 {
209 case 5:
210
0/1
✗ Decision 'true' not taken.
return true;
211 break;
212 case 10:
213
1/1
✓ Decision 'true' taken 1 times.
1 return true;
214 break;
215 default:
216
0/1
✗ Decision 'true' not taken.
return false;
217 break;
218 }
219 }
220
221 1 bool checkSwitch3(int a)
222 {
223
1/3
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
1 switch (a)
224 {
225 case 5:
226
0/1
✗ Decision 'true' not taken.
return true;
227 break;
228 case 10:
229
0/1
✗ Decision 'true' not taken.
return true;
230 break;
231 default:
232
1/1
✓ Decision 'true' taken 1 times.
1 return false;
233 break;
234 }
235 }
236
237 1 bool checkCompactBranch1True(int a)
238 {
239
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
1 if (a > 5) { return true; } else { return false; }
240 }
241
242 1 bool checkCompactBranch1False(int a)
243 {
244
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
1 if (a > 5) { return true; } else { return false; }
245 }
246
247 1 bool checkCompactBranch2True(int a)
248 {
249
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
0/1
? Decision couldn't be analyzed.
1 if (a > 5 && a < 10) { return true; } else { return false; }
250 }
251
252 1 bool checkCompactBranch2False(int a)
253 {
254
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
0/1
? Decision couldn't be analyzed.
1 if (a > 5 && a < 10) { return true; } else { return false; }
255 }
256
257 1 bool checkTernary1True(int a)
258 {
259 1 return (a == 5) ? true : false;
260 }
261
262 1 bool checkTernary1False(int a)
263 {
264 1 return (a == 5) ? true : false;
265 }
266
267 1 bool checkTernary2True(int a)
268 {
269
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 return (a > 5 && a < 10) ? true : false;
270 }
271
272 1 bool checkTernary2False(int a)
273 {
274
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
1 return (a > 5 && a < 10) ? true : false;
275 }
276
277 1 int checkForLoop(int a)
278 {
279 1 int temp = 0;
280
2/2
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
2/2
✓ Decision 'true' taken 5 times.
✓ Decision 'false' taken 1 times.
6 for (int i = 0; i < a; i++)
281 {
282 5 temp += a;
283 }
284 1 return temp;
285 }
286
287 1 int checkComplexForLoop(int a)
288 {
289 1 int temp = 0;
290
3/4
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
0/1
? Decision couldn't be analyzed.
6 for (int i = 0; i < a && a < 6; i++)
291 {
292 5 temp += a;
293 }
294 1 return temp;
295 }
296
297 1 int checkWhileLoop(int a)
298 {
299 1 int temp = 0;
300 1 int counter = 0;
301
302
2/2
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
2/2
✓ Decision 'true' taken 5 times.
✓ Decision 'false' taken 1 times.
11 while (counter < a)
303 {
304 5 counter++;
305 5 temp += a;
306 }
307
308 1 return temp;
309 }
310
311 1 int checkDoWhileLoop(int a)
312 {
313 1 int temp = 0;
314 1 int counter = 0;
315
316 4 do
317 {
318 5 counter++;
319 5 temp += a;
320
2/2
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 1 times.
2/2
✓ Decision 'true' taken 4 times.
✓ Decision 'false' taken 1 times.
5 } while (counter < a);
321
322 1 return temp;
323 }
324
325 1 bool checkInterpreter(int a)
326 {
327 1 char test1[] = " while ";
328 1 a++;
329
330 1 char test2[] = " for ";
331 {
332 1 a++;
333 }
334
335 1 char test3[] = " if(";
336 1 a++;
337
338 1 char test4[] = " do ";
339 1 a++;
340
341
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
1 if (a > 5)
342 {
343 1 return true;
344 }
345
346 return false;
347 }
348
349 2 void verify_issue_679(const bool b) {
350
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2/2
✓ Decision 'true' taken 1 times.
✓ Decision 'false' taken 1 times.
2 if (b) {
351
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 1 times.
2/2
✓ Decision 'true' taken 10 times.
✓ Decision 'false' taken 1 times.
1 for (int i = 0; i < 10; i++) {
352 }
353 }
354 2 }
355
356 1 int main(int argc, char *argv[])
357 {
358 1 checkBiggerTrue(6);
359 1 checkBiggerFalse(4);
360 1 checkBiggerBoth(6);
361 1 checkBiggerBoth(4);
362
363 1 checkSmallerTrue(4);
364 1 checkSmallerFalse(6);
365
366 1 checkEqualTrue(5);
367 1 checkEqualFalse(2);
368
369 1 checkNotEqualTrue(2);
370 1 checkNotEqualFalse(5);
371
372 1 checkComplexTrue(8);
373 1 checkComplexFalse(2);
374
375 1 checkElseIf1(5);
376 1 checkElseIf2(10);
377 1 checkElseIf3(0);
378
379 1 checkSwitch1(5);
380 1 checkSwitch2(10);
381 1 checkSwitch3(0);
382
383 1 checkCompactBranch1True(6);
384 1 checkCompactBranch1False(4);
385
386 1 checkCompactBranch2True(6);
387 1 checkCompactBranch2False(4);
388
389 1 checkTernary1True(6);
390 1 checkTernary1False(4);
391
392 1 checkTernary2True(6);
393 1 checkTernary2False(4);
394
395 1 checkForLoop(5);
396 1 checkComplexForLoop(5);
397 1 checkWhileLoop(5);
398 1 checkDoWhileLoop(5);
399
400 1 checkInterpreter(2);
401
402 1 verify_issue_679(false);
403 1 verify_issue_679(true);
404
405 1 return 0;
406 }
407