GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_app_condition.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 28 0 28
Functions: 100.0% 7 0 7
Branches: 60.7% 17 0 28
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 //
2 // Created by kifir on 10/3/24.
3 //
4
5 #include "pch.h"
6
7 #include "util/test_base.h"
8
9 namespace {
10 constexpr float TEST_TORQUE_REDUCTION_ARMING_APP = 17.0f;
11
12 class ShiftTorqueReductionAppConditionTest : public TestBase<> {
13 protected:
14 void checkAppCondition(std::optional<float> rpm, bool expectedAppCondition, const char* context);
15 };
16
17 8 void ShiftTorqueReductionAppConditionTest::checkAppCondition(
18 const std::optional<float> app,
19 const bool expectedAppCondition,
20 const char* const context
21 ) {
22 8 updateApp(app);
23
2/7
✓ Branch 3 taken 8 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 8 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
8 EXPECT_EQ(engine->shiftTorqueReductionController.isAppConditionSatisfied, expectedAppCondition) << context;
24 8 }
25
26 4 TEST_F(ShiftTorqueReductionAppConditionTest, checkZeroArmingApp) {
27
1/1
✓ Branch 2 taken 1 time.
3 setUpEngineConfiguration(EngineConfig()
28
1/1
✓ Branch 6 taken 1 time.
3 .setTorqueReductionEnabled(true)
29
1/1
✓ Branch 5 taken 1 time.
4 .setTorqueReductionArmingApp(0.0f)
30 );
31
1/1
✓ Branch 4 taken 1 time.
1 checkAppCondition(0.0f, true, "Zero APP");
32
1/1
✓ Branch 3 taken 1 time.
1 checkAppCondition(TEST_TORQUE_REDUCTION_ARMING_APP, true, "Non-zero APP");
33
1/1
✓ Branch 3 taken 1 time.
1 checkAppCondition({}, false, "Missed APP");
34 1 }
35
36 4 TEST_F(ShiftTorqueReductionAppConditionTest, checkArmingApp) {
37
1/1
✓ Branch 2 taken 1 time.
3 setUpEngineConfiguration(EngineConfig()
38
1/1
✓ Branch 6 taken 1 time.
3 .setTorqueReductionEnabled(true)
39
1/1
✓ Branch 4 taken 1 time.
4 .setTorqueReductionArmingApp(TEST_TORQUE_REDUCTION_ARMING_APP)
40 );
41
42 1 periodicFastCallback();
43
1/7
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_FALSE(engine->shiftTorqueReductionController.isAppConditionSatisfied) << "Default";
44
45
1/1
✓ Branch 4 taken 1 time.
1 checkAppCondition(0.0f, false, "Zero APP");
46
1/1
✓ Branch 4 taken 1 time.
1 checkAppCondition(TEST_TORQUE_REDUCTION_ARMING_APP - EPS5D, false, "Below arming APP");
47
1/1
✓ Branch 3 taken 1 time.
1 checkAppCondition(TEST_TORQUE_REDUCTION_ARMING_APP, true, "Exact arming APP");
48
1/1
✓ Branch 4 taken 1 time.
1 checkAppCondition(TEST_TORQUE_REDUCTION_ARMING_APP + EPS5D, true, "Above arming APP");
49
1/1
✓ Branch 3 taken 1 time.
1 checkAppCondition({}, false, "Missed APP");
50 1 }
51 }
52