GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/trigger/test_real_nb2_cranking.cpp
Date: 2025-10-03 00:57:22
Warnings: 2 unchecked decisions!
Coverage Exec Excl Total
Lines: 100.0% 32 0 32
Functions: 100.0% 6 0 6
Branches: 50.5% 51 0 101
Decisions: 0.0% 0 - 4

Line Branch Decision Exec Source
1 /*
2 * @file test_real_nb2_cranking.cpp
3 *
4 * @date July 13, 2019
5 * @author Andrey Belomutskiy, (c) 2012-2020
6 */
7
8 #include "pch.h"
9 #include "logicdata_csv_reader.h"
10
11 4 TEST(realCrankingNB2, normalCranking) {
12
1/1
✓ Branch 2 taken 1 time.
1 CsvReader reader(1, /* vvtCount */ 1);
13
14
1/1
✓ Branch 1 taken 1 time.
1 reader.open("tests/trigger/resources/nb2-cranking-good.csv");
15
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth (engine_type_e::MAZDA_MIATA_NB2);
16 1 engineConfiguration->alwaysInstantRpm = true;
17
18
3/3
✓ Branch 1 taken 978 times.
✓ Branch 3 taken 977 times.
✓ Branch 4 taken 1 time.
0/1
? Decision couldn't be analyzed.
978 while (reader.haveMore()) {
19
1/1
✓ Branch 1 taken 977 times.
977 reader.processLine(&eth);
20 }
21
22 // VVT position nearly zero!
23
3/7
✓ 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.
1 EXPECT_NEAR(engine->triggerCentral.getVVTPosition(0, 0), 4.2627f, 1e-4);
24
25 // Check the number of times VVT information was used to adjust crank phase
26 // This should happen exactly once: once we sync, we shouldn't lose it.
27
2/6
✓ Branch 3 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
1 EXPECT_EQ(engine->triggerCentral.triggerState.camResyncCounter, 2);
28
29
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(876, round(Sensor::getOrZero(SensorType::Rpm)));
30
31
3/7
✓ 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.
1 EXPECT_EQ(2u, eth.recentWarnings()->getCount());
32
3/7
✓ Branch 2 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_EQ(ObdCode::CUSTOM_PRIMARY_NOT_ENOUGH_TEETH, eth.recentWarnings()->get(0).Code);
33
3/7
✓ Branch 2 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_EQ(ObdCode::CUSTOM_CAM_TOO_MANY_TEETH, eth.recentWarnings()->get(1).Code);
34 1 }
35
36 4 TEST(realCrankingNB2, crankingMissingInjector) {
37
1/1
✓ Branch 2 taken 1 time.
1 CsvReader reader(1, /* vvtCount */ 1);
38
39
1/1
✓ Branch 1 taken 1 time.
1 reader.open("tests/trigger/resources/nb2-cranking-good-missing-injector-1.csv");
40
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth (engine_type_e::MAZDA_MIATA_NB2);
41 1 engineConfiguration->alwaysInstantRpm = true;
42
43
3/3
✓ Branch 1 taken 385 times.
✓ Branch 3 taken 384 times.
✓ Branch 4 taken 1 time.
0/1
? Decision couldn't be analyzed.
385 while (reader.haveMore()) {
44
1/1
✓ Branch 1 taken 384 times.
384 reader.processLine(&eth);
45 }
46
47 // VVT position nearly zero!
48
3/7
✓ 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.
1 EXPECT_NEAR(engine->triggerCentral.getVVTPosition(0, 0), -2.5231f, 1e-4);
49
50
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(316, round(Sensor::getOrZero(SensorType::Rpm)));
51
52
3/7
✓ 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.
1 EXPECT_EQ(3u, eth.recentWarnings()->getCount());
53
3/7
✓ Branch 2 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_EQ(ObdCode::CUSTOM_PRIMARY_NOT_ENOUGH_TEETH, eth.recentWarnings()->get(0).Code);
54
3/7
✓ Branch 2 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_EQ(ObdCode::CUSTOM_CAM_TOO_MANY_TEETH, eth.recentWarnings()->get(1).Code);
55
3/7
✓ Branch 2 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_EQ(ObdCode::CUSTOM_PRIMARY_TOO_MANY_TEETH, eth.recentWarnings()->get(2).Code);
56 1 }
57