GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/launch/test_rpm_condition.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 81 0 81
Functions: 100.0% 11 0 11
Branches: 23.7% 56 0 236
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 //
2 // Created by kifir on 5/21/24.
3 //
4
5 #include "pch.h"
6
7 namespace {
8 constexpr int TEST_LAUNCH_RPM = 2390;
9 constexpr int TEST_LAUNCH_RPM_WINDOW = 170;
10 constexpr int TEST_PRELAUNCH_RPM = TEST_LAUNCH_RPM - TEST_LAUNCH_RPM_WINDOW;
11
12 3 void setUpTestParameters() {
13 3 engineConfiguration->launchControlEnabled = true;
14 3 engineConfiguration->launchRpm = TEST_LAUNCH_RPM;
15 3 engineConfiguration->launchRpmWindow = TEST_LAUNCH_RPM_WINDOW;
16 3 engineConfiguration->launchSparkCutEnable = true;
17 3 }
18
19 17 void updateRpm(const int rpm) {
20 17 Sensor::setMockValue(SensorType::Rpm, rpm);
21 17 engine->launchController.update();
22 17 }
23
24 4 TEST(rpmCondition, increasingRpm) {
25
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
26
27 1 setUpTestParameters();
28
29 /* RPM hasn't reached Launch RPM parameter - rpmCondition isn't satisfied: */
30
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition); // check default value
31
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition); // check default value
32
33
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_PRELAUNCH_RPM - 1);
34
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
35
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition);
36
37
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_PRELAUNCH_RPM);
38
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
39
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmPreLaunchCondition);
40
41
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM - 1);
42
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
43
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmPreLaunchCondition);
44
45
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM);
46 /* RPM reached Launch RPM parameter - now rpmCondition is satisfied: */
47
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmLaunchCondition);
48
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition);
49 2 }
50
51 4 TEST(rpmCondition, decreasingRpm) {
52
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
53
54 1 setUpTestParameters();
55
56
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM);
57 /* RPM reached Launch RPM parameter - rpmCondition is satisfied: */
58
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmLaunchCondition);
59
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition);
60
61
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM - 1);
62 /* RPM is below Launch RPM parameter, but still in Launch Control Window - so rpmCondition is still satisfied: */
63
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
64
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmPreLaunchCondition);
65
66
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_PRELAUNCH_RPM);
67
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
68
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmPreLaunchCondition);
69
70
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_PRELAUNCH_RPM - 1);
71 /* RPM went down below Launch Control Window parameter - now rpmCondition is not satisfied: */
72
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
73
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition);
74 2 }
75
76 4 TEST(rpmCondition, rpmOscillation) {
77
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
78
79 1 setUpTestParameters();
80
81
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM);
82 /* RPM reached Launch RPM parameter - rpmCondition is satisfied: */
83
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmLaunchCondition);
84
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition);
85
86
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM - 1);
87
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
88
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmPreLaunchCondition);
89
90
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM + 1);
91
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmLaunchCondition);
92
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition);
93
94
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_PRELAUNCH_RPM);
95
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
96
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmPreLaunchCondition);
97
98
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM + 2);
99
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmLaunchCondition);
100
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition);
101
102
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_PRELAUNCH_RPM - 1);
103 /* RPM went down below Launch Control Window parameter - now rpmCondition is not satisfied: */
104
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
105
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition);
106
107
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_PRELAUNCH_RPM);
108
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
109
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmPreLaunchCondition);
110
111
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM - 1);
112
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmLaunchCondition);
113
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmPreLaunchCondition);
114
115 /* RPM reached Launch RPM parameter again - now rpmCondition is satisfied: */
116
1/1
✓ Branch 1 taken 1 time.
1 updateRpm(TEST_LAUNCH_RPM);
117
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_TRUE(engine->launchController.rpmLaunchCondition);
118
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(engine->launchController.rpmPreLaunchCondition);
119 2 }
120 }
121