GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/util/test_base.hpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 185 0 185
Functions: 100.0% 25 0 25
Branches: 87.5% 7 0 8
Decisions: 100.0% 2 - 2

Line Branch Decision Exec Source
1 template<class GtestBase, engine_type_e EngineType>
2 template<typename ModuleType>
3 427 ModuleType& TestBase<GtestBase, EngineType>::getModule() {
4 427 return engine->module<ModuleType>().unmock();
5 }
6
7 template<class GtestBase, engine_type_e EngineType>
8 140 void TestBase<GtestBase, EngineType>::SetUp() {
9
2/2
TestBase<testing::Test, (engine_type_e)26>::SetUp():
✓ Branch 3 taken 119 times.
TestBase<testing::TestWithParam<ShiftTorqueReductionSwitchParams>, (engine_type_e)26>::SetUp():
✓ Branch 3 taken 21 times.
140 eth = std::make_unique<EngineTestHelper>(EngineType);
10 140 }
11
12 template<class GtestBase, engine_type_e EngineType>
13 140 void TestBase<GtestBase, EngineType>::TearDown() {
14 140 eth.reset();
15 140 }
16
17 template<class GtestBase, engine_type_e EngineType>
18 7629 TestEngineConfiguration& TestBase<GtestBase, EngineType>::getTestEngineConfiguration() {
19 7629 return TestEngineConfiguration::getInstance();
20 }
21
22 template<class GtestBase, engine_type_e EngineType>
23 18 TestPersistentConfiguration& TestBase<GtestBase, EngineType>::getTestPersistentConfiguration() {
24 18 return TestPersistentConfiguration::getInstance();
25 }
26
27 template<class GtestBase, engine_type_e EngineType>
28 197 TestLuaScriptExecutor& TestBase<GtestBase, EngineType>::getTestLuaScriptExecutor() {
29 197 return TestLuaScriptExecutor::getInstance();
30 }
31
32 template<class GtestBase, engine_type_e EngineType>
33 6 TestEngineState& TestBase<GtestBase, EngineType>::getTestEngineState() {
34 6 return TestEngineState::getInstance();
35 }
36
37 template<class GtestBase, engine_type_e EngineType>
38 129 void TestBase<GtestBase, EngineType>::setUpEngineConfiguration(const EngineConfig& config) {
39 // Other Sensor Inputs
40 129 getTestEngineConfiguration().configureClutchDownPin(config.getClutchDownPin());
41 129 getTestEngineConfiguration().configureClutchDownPinMode(config.getClutchDownPinMode());
42 129 getTestEngineConfiguration().configureClutchUpPin(config.getClutchUpPin());
43 129 getTestEngineConfiguration().configureClutchUpPinMode(config.getClutchUpPinMode());
44
45 // Launch Control
46 129 getTestEngineConfiguration().configureLaunchActivatePin(config.getLaunchActivatePin());
47 129 getTestEngineConfiguration().configureLaunchActivateMode(config.getLaunchActivatePinMode());
48 129 getTestEngineConfiguration().configureLaunchControlEnabled(config.getLaunchControlEnabled());
49 129 getTestEngineConfiguration().configureLaunchRpm(config.getLaunchRpm());
50 129 getTestEngineConfiguration().configureLaunchRpmWindow(config.getLaunchRpmWindow());
51 129 getTestEngineConfiguration().configureLaunchCorrectionsEndRpm(config.getLaunchCorrectionsEndRpm());
52 129 getTestEngineConfiguration().configureIgnitionRetardEnable(config.getIgnitionRetardEnable());
53 129 getTestEngineConfiguration().configureIgnitionRetard(config.getIgnitionRetard());
54 129 getTestEngineConfiguration().configureSmoothRetardMode(config.getSmoothRetardMode());
55 129 getTestEngineConfiguration().configureEnableIgnitionCut(config.getEnableIgnitionCut());
56 129 getTestEngineConfiguration().configureInitialIgnitionCutPercent(config.getInitialIgnitionCut());
57 129 getTestEngineConfiguration().configureFinalIgnitionCutPercentBeforeLaunch(config.getFinalIgnitionCutBeforeLaunch());
58
59 // Shift Torque Reduction (Flat Shift)
60 129 getTestEngineConfiguration().configureTorqueReductionEnabled(config.getTorqueReductionEnabled());
61 129 getTestEngineConfiguration().configureTorqueReductionActivationMode(config.getTorqueReductionActivationMode());
62 129 getTestEngineConfiguration().configureTorqueReductionTriggerPin(config.getTorqueReductionTriggerPin());
63 129 getTestEngineConfiguration().configureTorqueReductionButtonMode(config.getTorqueReductionTriggerPinMode());
64 129 getTestEngineConfiguration().configureLimitTorqueReductionTime(config.getLimitTorqueReductionTime());
65 129 getTestEngineConfiguration().configureTorqueReductionTime(config.getTorqueReductionTime());
66 129 getTestEngineConfiguration().configureTorqueReductionArmingRpm(config.getTorqueReductionArmingRpm());
67 129 getTestEngineConfiguration().configureTorqueReductionArmingApp(config.getTorqueReductionArmingApp());
68 129 getTestEngineConfiguration().configureTorqueReductionIgnitionCut(config.getTorqueReductionIgnitionCut());
69
2/2
TestBase<testing::Test, (engine_type_e)26>::setUpEngineConfiguration(EngineConfig const&):
✓ Branch 6 taken 87 times.
TestBase<testing::TestWithParam<ShiftTorqueReductionSwitchParams>, (engine_type_e)26>::setUpEngineConfiguration(EngineConfig const&):
✓ Branch 6 taken 42 times.
129 getTestEngineConfiguration().configureTorqueReductionIgnitionRetard(config.getTorqueReductionIgnitionRetard());
70
71 129 getTestEngineConfiguration().configureFuelPressureSensorMode(config.getFuelPressureSensorMode());
72
73 // Injector
74 129 getTestEngineConfiguration().configureInjectorFlowAsMassFlow(config.getInjectorFlowAsMassFlow());
75 129 getTestEngineConfiguration().configureInjectorFlow(config.getInjectorFlow());
76 129 getTestEngineConfiguration().configureInjectorBattLagCorr(config.getInjectorBattLagCorr());
77 129 getTestEngineConfiguration().configureFuelReferencePressure(config.getFuelReferencePressure());
78 129 getTestEngineConfiguration().configureInjectorCompensationMode(config.getInjectorCompensationMode());
79
80 // Secondary injector
81 129 getTestEngineConfiguration().configureInjectorSecondaryFlow(config.getInjectorSecondaryFlow());
82 129 getTestEngineConfiguration().configureInjectorSecondaryBattLagCorr(config.getInjectorSecondaryBattLagCorr());
83 129 getTestEngineConfiguration().configureSecondaryInjectorFuelReferencePressure(
84 config.getSecondaryInjectorFuelReferencePressure()
85 );
86 129 getTestEngineConfiguration().configureSecondaryInjectorCompensationMode(
87 config.getSecondaryInjectorCompensationMode()
88 );
89
90 // Staged injection
91 129 getTestEngineConfiguration().configureEnableStagedInjection(config.getStagedInjectionEnabled());
92
93 // Nitrous control
94 129 getTestEngineConfiguration().configureNitrousControlEnabled(config.getNitrousControlEnabled());
95 129 getTestEngineConfiguration().configureNitrousControlArmingMethod(config.getNitrousControlArmingMethod());
96 129 getTestEngineConfiguration().configureNitrousControlTriggerPin(config.getNitrousControlTriggerPin());
97 129 getTestEngineConfiguration().configureNitrousControlTriggerPinMode(config.getNitrousControlTriggerPinMode()
98 );
99 129 getTestEngineConfiguration().configureNitrousControlTriggerPinMode(config.getNitrousControlTriggerPinMode());
100 129 getTestEngineConfiguration().configureNitrousLuaGauge(config.getNitrousLuaGauge());
101 129 getTestEngineConfiguration().configureNitrousLuaGaugeMeaning(config.getNitrousLuaGaugeMeaning());
102 129 getTestEngineConfiguration().configureNitrousLuaGaugeArmingValue(config.getNitrousLuaGaugeArmingValue());
103
104 129 getTestEngineConfiguration().configureNitrousMinimumVehicleSpeed(config.getNitrousMinimumVehicleSpeed());
105 129 getTestEngineConfiguration().configureNitrousMinimumTps(config.getNitrousMinimumTps());
106 129 getTestEngineConfiguration().configureNitrousMinimumClt(config.getNitrousMinimumClt());
107 129 getTestEngineConfiguration().configureNitrousMaximumMap(config.getNitrousMaximumMap());
108 129 getTestEngineConfiguration().configureNitrousMaximumAfr(config.getNitrousMaximumAfr());
109 129 getTestEngineConfiguration().configureNitrousActivationRpm(config.getNitrousActivationRpm());
110 129 getTestEngineConfiguration().configureNitrousDeactivationRpm(config.getNitrousDeactivationRpm());
111 129 getTestEngineConfiguration().configureNitrousDeactivationRpmWindow(
112 config.getNitrousDeactivationRpmWindow()
113 );
114 129 getTestEngineConfiguration().configureNitrousFuelAdderPercent(
115 config.getNitrousFuelAdderPercent()
116 );
117 129 getTestEngineConfiguration().configureNitrousIgnitionRetard(config.getNitrousIgnitionRetard());
118 129 getTestEngineConfiguration().configureFuelLevelAveragingAlpha(config.getFuelLevelAveragingAlpha());
119 129 getTestEngineConfiguration().configureFuelLevelUpdatePeriodSec(config.getFuelLevelUpdatePeriodSec());
120 129 getTestEngineConfiguration().configureFuelLevelLowThresholdVoltage(config.getFuelLevelLowThresholdVoltage());
121 129 getTestEngineConfiguration().configureFuelLevelHighThresholdVoltage(config.getFuelLevelHighThresholdVoltage());
122 129 }
123
124 template<class GtestBase, engine_type_e EngineType>
125 785 void TestBase<GtestBase, EngineType>::periodicFastCallback() {
126 // run the ignition math
127 785 engine->periodicFastCallback();
128 785 }
129
130 template<class GtestBase, engine_type_e EngineType> void
131 323 TestBase<GtestBase, EngineType>::periodicSlowCallback() {
132 323 engine->periodicSlowCallback();
133 323 }
134
135 template<class GtestBase, engine_type_e EngineType>
136 36 void TestBase<GtestBase, EngineType>::updateVehicleSpeed(const std::optional<float> speed, void (TestBase::* const postAction)()) {
137 36 updateSensor(SensorType::VehicleSpeed, speed, postAction);
138 36 }
139
140 template<class GtestBase, engine_type_e EngineType>
141 288 void TestBase<GtestBase, EngineType>::updateRpm(const std::optional<float> rpm, void (TestBase::* const postAction)()) {
142 288 updateSensor(SensorType::Rpm, rpm, postAction);
143 288 }
144
145 template<class GtestBase, engine_type_e EngineType>
146 55 void TestBase<GtestBase, EngineType>::updateApp(const std::optional<float> app, void (TestBase::* const postAction)()) {
147 55 updateSensor(SensorType::DriverThrottleIntent, app, postAction);
148 55 }
149
150 template<class GtestBase, engine_type_e EngineType>
151 41 void TestBase<GtestBase, EngineType>::updateClt(const std::optional<float> clt, void (TestBase::* const postAction)()) {
152 41 updateSensor(SensorType::Clt, clt, postAction);
153 41 }
154
155 template<class GtestBase, engine_type_e EngineType>
156 41 void TestBase<GtestBase, EngineType>::updateMap(const std::optional<float> map, void (TestBase::* const postAction)()) {
157 41 updateSensor(SensorType::Map, map, postAction);
158 41 }
159
160 template<class GtestBase, engine_type_e EngineType>
161 41 void TestBase<GtestBase, EngineType>::updateLambda1(std::optional<float> lambda1, void (TestBase::* const postAction)()) {
162 41 updateSensor(SensorType::Lambda1, lambda1, postAction);
163 41 }
164
165 template<class GtestBase, engine_type_e EngineType>
166 502 void TestBase<GtestBase, EngineType>::updateSensor(
167 const SensorType sensor,
168 const std::optional<float> sensorReading,
169 void (TestBase::* const postAction)()
170 ) {
171
2/2
✓ Branch 1 taken 476 times.
✓ Branch 2 taken 26 times.
2/2
✓ Decision 'true' taken 476 times.
✓ Decision 'false' taken 26 times.
502 if (sensorReading.has_value()) {
172 476 Sensor::setMockValue(sensor, sensorReading.value());
173 } else {
174 26 Sensor::resetMockValue(sensor);
175 }
176
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 502 times.
502 (this->*postAction)();
177 502 }
178