GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/trigger/test_real_bosch_quick_start.cpp
Date: 2025-10-03 00:57:22
Warnings: 3 unchecked decisions!
Coverage Exec Excl Total
Lines: 100.0% 53 0 53
Functions: 100.0% 9 0 9
Branches: 57.8% 67 0 116
Decisions: 40.0% 4 - 10

Line Branch Decision Exec Source
1 #include "pch.h"
2
3 #include "engine_csv_reader.h"
4
5 4 TEST(realBQS, realHarleyCranking) {
6
1/1
✓ Branch 2 taken 1 time.
1 EngineCsvReader reader(/*triggerCount*/1, /* vvtCount */ 0);
7 1 reader.setReadingOffset(1);
8
1/1
✓ Branch 1 taken 1 time.
1 reader.open("tests/ignition_injection/resources/hd-req-sync_3.csv");
9 1 reader.setFlipOnRead(true);
10
11
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::ET_BOSCH_QUICK_START);
12
13
3/3
✓ Branch 1 taken 977 times.
✓ Branch 3 taken 976 times.
✓ Branch 4 taken 1 time.
0/1
? Decision couldn't be analyzed.
977 while (reader.haveMore()) {
14
1/1
✓ Branch 1 taken 976 times.
976 reader.processLine(&eth);
15
16
1/1
✓ Branch 1 taken 976 times.
976 auto rpm = Sensor::getOrZero(SensorType::Rpm);
17
2/2
✓ Branch 0 taken 813 times.
✓ Branch 1 taken 163 times.
2/2
✓ Decision 'true' taken 813 times.
✓ Decision 'false' taken 163 times.
976 if (reader.gotRpm) {
18
3/9
✓ Branch 3 taken 813 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 813 times.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 813 times.
✗ Branch 34 not taken.
813 ASSERT_TRUE(Sensor::get(SensorType::Rpm).Valid);
19 }
20
1/1
✓ Branch 1 taken 976 times.
976 reader.assertFirstRpm(184, 163);
21 }
22
3/9
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
1 ASSERT_TRUE(Sensor::get(SensorType::Rpm).Valid);
23
24 1 }
25
26 4 TEST(realBQS, readAsPrimarySensor) {
27
1/1
✓ Branch 2 taken 1 time.
1 EngineCsvReader reader(/*triggerCount*/1, /* vvtCount */ 0);
28
1/1
✓ Branch 1 taken 1 time.
1 reader.open("tests/trigger/resources/BQS-longer.csv");
29 1 reader.setFlipOnRead(true);
30
31
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::ET_BOSCH_QUICK_START);
32
33
3/3
✓ Branch 1 taken 161 times.
✓ Branch 3 taken 160 times.
✓ Branch 4 taken 1 time.
0/1
? Decision couldn't be analyzed.
161 while (reader.haveMore()) {
34
1/1
✓ Branch 1 taken 160 times.
160 reader.processLine(&eth);
35
1/1
✓ Branch 1 taken 160 times.
160 reader.assertFirstRpm(2036, 13);
36 }
37
3/9
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
1 ASSERT_TRUE(Sensor::get(SensorType::Rpm).Valid);
38
4/9
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✓ Branch 27 taken 1 time.
✗ Branch 28 not taken.
1 ASSERT_NEAR(Sensor::get(SensorType::Rpm).Value, 1874, 1);
39
40 1 }
41
42 4 TEST(realBQS, readAsCam) {
43
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::ET_TEST_WITH_BOSCH_QUICK_START);
44
45
1/1
✓ Branch 1 taken 1 time.
1 hwHandleShaftSignal(0, true, 0);
46
1/1
✓ Branch 1 taken 1 time.
1 hwHandleShaftSignal(0, false, 1000000);
47
1/1
✓ Branch 1 taken 1 time.
1 hwHandleShaftSignal(0, true, 2000000);
48
1/1
✓ Branch 1 taken 1 time.
1 hwHandleShaftSignal(0, false, 3000000);
49
4/9
✓ 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 24 not taken.
✓ Branch 31 taken 1 time.
✗ Branch 32 not taken.
1 ASSERT_EQ(3000, Sensor::getOrZero(SensorType::Rpm));
50
51
1/1
✓ Branch 2 taken 1 time.
1 CsvReader reader(/*triggerCount*/0, /* vvtCount */ 1);
52
1/1
✓ Branch 1 taken 1 time.
1 reader.open("tests/trigger/resources/BQS-longer.csv");
53 1 reader.flipVvtOnRead = true;
54
55
1/1
✓ Branch 1 taken 1 time.
1 TriggerCentral *tc = getTriggerCentral();
56
3/9
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
1 ASSERT_TRUE(tc->triggerState.getShaftSynchronized());
57 1 TriggerDecoderBase& vvtDecoder = tc->vvtState[0][0];
58
59 1 bool gotVvt = false;
60
3/3
✓ Branch 1 taken 161 times.
✓ Branch 3 taken 160 times.
✓ Branch 4 taken 1 time.
0/1
? Decision couldn't be analyzed.
161 while (reader.haveMore()) {
61
1/1
✓ Branch 1 taken 160 times.
160 reader.processLine(&eth);
62
63
7/7
✓ Branch 0 taken 13 times.
✓ Branch 1 taken 147 times.
✓ Branch 3 taken 13 times.
✓ Branch 5 taken 1 time.
✓ Branch 6 taken 12 times.
✓ Branch 7 taken 1 time.
✓ Branch 8 taken 159 times.
2/2
✓ Decision 'true' taken 1 time.
✓ Decision 'false' taken 159 times.
160 if (!gotVvt && vvtDecoder.getShaftSynchronized()) {
64 1 gotVvt = true;
65
2/6
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_EQ(reader.lineIndex(), 13);
66 }
67 }
68
4/9
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✓ Branch 27 taken 1 time.
✗ Branch 28 not taken.
1 ASSERT_DOUBLE_EQ(-247.03125, tc->getVVTPosition(0, 0));
69
3/9
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
1 ASSERT_TRUE(vvtDecoder.getShaftSynchronized());
70 1 }
71