GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/trigger/test_real_volkswagen.cpp
Date: 2025-11-16 14:52:24
Warnings: 4 unchecked decisions!
Coverage Exec Excl Total
Lines: 100.0% 45 0 45
Functions: 100.0% 6 0 6
Branches: 57.0% 61 0 107
Decisions: 0.0% 0 - 8

Line Branch Decision Exec Source
1 /*
2 * @file test_real_volkswagen.cpp
3 *
4 * @date Jun 26, 2021
5 * @author Andrey Belomutskiy, (c) 2012-2021
6 */
7
8 #include "pch.h"
9
10 #include "logicdata_csv_reader.h"
11
12 4 TEST(crankingVW, vwRealCrankingFromFile) {
13 extern bool unitTestTaskPrecisionHack;
14 1 unitTestTaskPrecisionHack = true;
15
1/1
✓ Branch 2 taken 1 time.
1 CsvReader reader(1, /* vvtCount */ 0);
16
17
1/1
✓ Branch 1 taken 1 time.
1 reader.open("tests/trigger/resources/nick_1.csv");
18
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth (engine_type_e::VW_ABA);
19 1 engineConfiguration->alwaysInstantRpm = true;
20
1/1
✓ Branch 1 taken 1 time.
1 eth.setTriggerType(trigger_type_e::TT_60_2_WRONG_POLARITY);
21
22
3/3
✓ Branch 1 taken 5197 times.
✓ Branch 3 taken 5196 times.
✓ Branch 4 taken 1 time.
0/1
? Decision couldn't be analyzed.
5197 while (reader.haveMore()) {
23
1/1
✓ Branch 1 taken 5196 times.
5196 reader.processLine(&eth);
24 }
25
26
4/10
✓ Branch 3 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 25 not taken.
✗ Branch 28 not taken.
✓ Branch 35 taken 1 time.
✗ Branch 36 not taken.
1 ASSERT_EQ( 0u, eth.recentWarnings()->getCount())<< "warningCounter#vwRealCranking";
27
4/10
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 38 not taken.
1 ASSERT_EQ( 1695, round(Sensor::getOrZero(SensorType::Rpm)))<< reader.lineIndex();
28 1 }
29
30 4 TEST(crankingVW, crankingTwiceWithGap) {
31 extern bool unitTestTaskPrecisionHack;
32 1 unitTestTaskPrecisionHack = true;
33
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth (engine_type_e::VW_ABA);
34 extern bool unitTestTaskNoFastCallWhileAdvancingTimeHack;
35 1 unitTestTaskNoFastCallWhileAdvancingTimeHack = true;
36 1 engineConfiguration->alwaysInstantRpm = true;
37
1/1
✓ Branch 1 taken 1 time.
1 eth.setTriggerType(trigger_type_e::TT_60_2_WRONG_POLARITY);
38
39 {
40
1/1
✓ Branch 2 taken 1 time.
1 CsvReader reader(1, /* vvtCount */ 0);
41
42
1/1
✓ Branch 1 taken 1 time.
1 reader.open("tests/trigger/resources/nick_1.csv");
43
44
3/3
✓ Branch 1 taken 5197 times.
✓ Branch 3 taken 5196 times.
✓ Branch 4 taken 1 time.
0/1
? Decision couldn't be analyzed.
5197 while (reader.haveMore()) {
45
1/1
✓ Branch 1 taken 5196 times.
5196 reader.processLine(&eth);
46 }
47
48
4/10
✓ Branch 3 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 25 not taken.
✗ Branch 28 not taken.
✓ Branch 35 taken 1 time.
✗ Branch 36 not taken.
1 ASSERT_EQ(0u, eth.recentWarnings()->getCount())<< "warningCounter#vwRealCranking";
49
4/10
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 38 not taken.
1 ASSERT_EQ(1695, round(Sensor::getOrZero(SensorType::Rpm)))<< reader.lineIndex();
50 1 }
51
52
1/1
✓ Branch 1 taken 1 time.
1 auto now = getTimeNowNt();
53
54 {
55 // Offset by a short time offset, 10 seconds
56
1/1
✓ Branch 2 taken 1 time.
1 CsvReader reader(1, /* vvtCount */ 0, 10);
57
58
1/1
✓ Branch 1 taken 1 time.
1 reader.open("tests/trigger/resources/nick_1.csv");
59
60
3/3
✓ Branch 1 taken 5197 times.
✓ Branch 3 taken 5196 times.
✓ Branch 4 taken 1 time.
0/1
? Decision couldn't be analyzed.
5197 while (reader.haveMore()) {
61
1/1
✓ Branch 1 taken 5196 times.
5196 reader.processLine(&eth);
62 }
63
64
4/9
✓ Branch 3 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✓ Branch 32 taken 1 time.
✗ Branch 33 not taken.
1 ASSERT_EQ(0u, eth.recentWarnings()->getCount());
65
4/10
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 38 not taken.
1 ASSERT_EQ(1695, round(Sensor::getOrZero(SensorType::Rpm)))<< reader.lineIndex();
66 1 }
67
68 {
69 // Offset by long time offset, 5m14.15s
70
1/1
✓ Branch 2 taken 1 time.
1 CsvReader reader(1, /* vvtCount */ 0, 314.159);
71
72
1/1
✓ Branch 1 taken 1 time.
1 reader.open("tests/trigger/resources/nick_1.csv");
73
74
3/3
✓ Branch 1 taken 5197 times.
✓ Branch 3 taken 5196 times.
✓ Branch 4 taken 1 time.
0/1
? Decision couldn't be analyzed.
5197 while (reader.haveMore()) {
75
1/1
✓ Branch 1 taken 5196 times.
5196 reader.processLine(&eth);
76 }
77
78
4/9
✓ Branch 3 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✓ Branch 32 taken 1 time.
✗ Branch 33 not taken.
1 ASSERT_EQ(0u, eth.recentWarnings()->getCount());
79
4/10
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 38 not taken.
1 ASSERT_EQ(1695, round(Sensor::getOrZero(SensorType::Rpm)))<< reader.lineIndex();
80 1 }
81 1 }
82