GCC Code Coverage Report


Directory: .
File: main.cpp
Date: 2022-04-26 20:43:47
Warnings: 3 unchecked decisions!
Exec Total Coverage
Lines: 140 170 82.4%
Functions: 31 31 100.0%
Branches: 41 83 49.4%
Decisions: 29 61 47.5%

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
0/1
✗ Decision 'true' not taken.
case 10:
190 return true;
191 break;
192
0/1
✗ Decision 'true' not taken.
default:
193 return false;
194 break;
195 }
196 }
197
198 1 bool checkSwitch2(int a)
199 {
200
1/3
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 switch (a)
201 {
202
0/1
✗ Decision 'true' not taken.
case 5:
203 return true;
204 break;
205
1/1
✓ Decision 'true' taken 1 times.
1 case 10:
206 1 return true;
207 break;
208
0/1
✗ Decision 'true' not taken.
default:
209 return false;
210 break;
211 }
212 }
213
214 1 bool checkSwitch3(int a)
215 {
216
1/3
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
1 switch (a)
217 {
218
0/1
✗ Decision 'true' not taken.
case 5:
219 return true;
220 break;
221
0/1
✗ Decision 'true' not taken.
case 10:
222 return true;
223 break;
224
1/1
✓ Decision 'true' taken 1 times.
1 default:
225 1 return false;
226 break;
227 }
228 }
229
230 1 bool checkCompactBranch1True(int a)
231 {
232
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; }
233 }
234
235 1 bool checkCompactBranch1False(int a)
236 {
237
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; }
238 }
239
240 1 bool checkCompactBranch2True(int a)
241 {
242
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; }
243 }
244
245 1 bool checkCompactBranch2False(int a)
246 {
247
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; }
248 }
249
250 1 bool checkTernary1True(int a)
251 {
252 1 return (a == 5) ? true : false;
253 }
254
255 1 bool checkTernary1False(int a)
256 {
257 1 return (a == 5) ? true : false;
258 }
259
260 1 bool checkTernary2True(int a)
261 {
262
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;
263 }
264
265 1 bool checkTernary2False(int a)
266 {
267
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;
268 }
269
270 1 int checkForLoop(int a)
271 {
272 1 int temp = 0;
273
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++)
274 {
275 5 temp += a;
276 }
277 1 return temp;
278 }
279
280 1 int checkComplexForLoop(int a)
281 {
282 1 int temp = 0;
283
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++)
284 {
285 5 temp += a;
286 }
287 1 return temp;
288 }
289
290 1 int checkWhileLoop(int a)
291 {
292 1 int temp = 0;
293 1 int counter = 0;
294
295
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 while (counter < a)
296 {
297 5 counter++;
298 5 temp += a;
299 }
300
301 1 return temp;
302 }
303
304 1 int checkDoWhileLoop(int a)
305 {
306 1 int temp = 0;
307 1 int counter = 0;
308
309 do
310 {
311 5 counter++;
312 5 temp += a;
313
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);
314
315 1 return temp;
316 }
317
318 1 bool checkInterpreter(int a)
319 {
320 1 char test1[] = " while ";
321 1 a++;
322
323 1 char test2[] = " for ";
324 {
325 1 a++;
326 }
327
328 1 char test3[] = " if(";
329 1 a++;
330
331 1 char test4[] = " do ";
332 1 a++;
333
334
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)
335 {
336 1 return true;
337 }
338
339 return false;
340 }
341
342 1 int main(int argc, char *argv[])
343 {
344 1 checkBiggerTrue(6);
345 1 checkBiggerFalse(4);
346 1 checkBiggerBoth(6);
347 1 checkBiggerBoth(4);
348
349 1 checkSmallerTrue(4);
350 1 checkSmallerFalse(6);
351
352 1 checkEqualTrue(5);
353 1 checkEqualFalse(2);
354
355 1 checkNotEqualTrue(2);
356 1 checkNotEqualFalse(5);
357
358 1 checkComplexTrue(8);
359 1 checkComplexFalse(2);
360
361 1 checkElseIf1(5);
362 1 checkElseIf2(10);
363 1 checkElseIf3(0);
364
365 1 checkSwitch1(5);
366 1 checkSwitch2(10);
367 1 checkSwitch3(0);
368
369 1 checkCompactBranch1True(6);
370 1 checkCompactBranch1False(4);
371
372 1 checkCompactBranch2True(6);
373 1 checkCompactBranch2False(4);
374
375 1 checkTernary1True(6);
376 1 checkTernary1False(4);
377
378 1 checkTernary2True(6);
379 1 checkTernary2False(4);
380
381 1 checkForLoop(5);
382 1 checkComplexForLoop(5);
383 1 checkWhileLoop(5);
384 1 checkDoWhileLoop(5);
385
386 1 checkInterpreter(2);
387
388 1 return 0;
389 }
390